网站首页 > 教程分享 正文
案例演示
先看案例,下图中为一张销售表,每位客户分别在不同时间段购买过多次商品,现在需要提取出每位客户第一次的购买情况:
这里利用字典技术处理:
新建一个模块,输入以下代码,点击运行,即可提取出每位客户首次购买商品数量,动图展示如下:
以上是利用字典技术的一个小案例,今天我们系统的说下字典的作用!
初识字典
字典(Dictionary):是微软Windows脚本语言中的一个很有用的对象。
字典可以理解为一个特殊的二维数组,由key(键)和Item组成,其中key具有唯一性和不重复性;
字典并不存在于VBA中,需要调用,调用方法:
Set d = CreateObject("scripting.Dictionary");
向字典中添加键、值:d.Add key1, Item1;
获取字典的所有key:d.Keys,返回一个数组;
获取字典的所有Item:d.Items,返回一个数组;
由于字典的key是唯一的,所以当添加两个一样的key时会报错,如下图所示:
利用这一特性,我们可以对数据进行去重数据!
案例说明
回到刚开始的案例,把数据源的B列姓名作为key,数量作为Item,由于key具有唯一性,所以字典在存入相同用户的时候只会保留第一次存入用户的信息,后面的会报错,利用一句“On Error Resume Next”,发生错误,调至下一步,即可解决报错问题。
当然,针对原始数据源,因为要求客户最早一次购买数量,需要将数据按日期升序处理,再利用字典处理,不然无法返回正确结果。
代码明细如下图所示:
Sub 提取首次购买数量()
On Error Resume Next
Set d = CreateObject("scripting.dictionary")
arr = Range("b1:c" & Cells(Rows.Count, 3).End(xlUp).Row)
For i = 1 To UBound(arr)
d.Add arr(i, 1), arr(i, 2)
Next
[e1].Resize(d.Count) = Application.Transpose(d.Keys)
[f1].Resize(d.Count) = Application.Transpose(d.Items)
End Sub
小结
字典在VBA中的应用还是很广泛的,这里举个代表性的例子,分享给大家,希望有所帮助,如果觉得有用,欢迎关注我!
猜你喜欢
- 2024-10-24 OpenCV-Python滚动条函数cv2.createTrackerbar()的使用
- 2024-10-24 【创新办公】J5create虫洞交换器实现双设备无缝连接。
- 2024-10-24 十铨发布T-CREATE雷电3外接式固态硬盘,以及T-FORCE CARDEA Z44L SSD
- 2024-10-24 j5create USB 3.0跨平台传输线,让两台设备传输文件更方便
- 2024-10-24 C#常见错误_调用第三方动态库dll(c#调用c动态库)
- 2024-10-24 百万Java 面试题整理(1.0)(100个java面试题及答案)
- 2024-10-24 windows11 上无法在vs2019上执行powershell脚本的解决方案
- 2024-10-24 opencv实时识别指定物体(opencv实现图像识别)
- 2024-10-24 使用内存映射文件实现进程通信(内存映射什么意思)
- 2024-10-24 全程软件测试(六十六):软件测试之MySQL基础—读书笔记
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)