欢迎光临!弹性体技术站 PHPv3.0版
服务热线全国服务热线:

15015691537

您的位置: HOME > 文章导读 > 职场办公 > 字典(dictionary)-VBA编程课中的精华.VBA中级编程必学课!热荐!热荐!热荐!

本站新闻

字典(dictionary)-VBA编程课中的精华.VBA中级编程必学课!热荐!热荐!热荐!

字典是什么?

简单来说就是提供快速键值对—1key(键)对1value/item(值)查询的一种数据结构或者对象。字典对象的核心功效就是快速和一个萝卜一个坑。

好比新华字典、英汉词典等,运用字典,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释。值得一提的是,字典对象并不是Excel程序直接自带的,它是调用WIN系统自带的一个工具库。

VBA的字典在哪里?如何使用它?

前面我们说到了,字典对象不是Excel程序直接提供的,而是WIN系统自带的,他的存储位置在”c:\windows\system32\scrrun.dll”链接库中。所以使用前我们要先调用它。分前期绑定法和后期绑定法,新手学习时推荐大家使用前期绑定法,具体如下。
字典在scrrun.dll这个链库中,我们需要依次点击【工具】-【引用】,下拉找到【Microsoft.Scripting.Runtime】勾选确定

然后我们就可以在代码中使用,好处就是写代码直接提示方法和属性!

后期绑定法借助VBA的CreateObject函数创建,缺点是没有智能提示,好处就是程序如果给别人使用,不需要勾选对应的库。

Dim d as object,set d=vba.createobject(“scripting.dictionary”)

VBA字典的主要构造

VBA字典对象其实只有4个属性和6个方法.其中4个属性分别为Count属性、Key属性、Item属性、CompareMode属性。6个方法分别为:Add方法、Keys方法、Items方法、Exists方法、Remove方法、RemoveAll方法。

字典基本用法简介
比如在字典中添加一对一关系(一键对一值\1KEY对1value-item)的数据,比如编号和名称,字典的键(编号)要求唯一。
1、添加内容 – Add方法

往字典中添加内容,可以使用Add方法,第一参数-键(key),对应第二参数- 值(value)。因为KEY键的唯一性,如果我们使用Add方法添加内容,key重复就会出现以下报错提示(该关键字已经与该集合的一个元素相关联)。这就是要求我们key必须唯一,不能重复,也就是1键对1值关系的核心。

 

当内容添加到字典中,我们就可以根据key快速提取了,那么为了确保能取到值,我们需要先判断key是否存在
2、判断key是否存在- Exists方法
字典对象提供了一个Exists方法方便查询键是否存在,如果存在再查询值,否则就会报错!

3、查询键对应的值-Item属性
通常来说,这个应该是我们使用字典对象来获取数据的最重要的方法之一了,查询键对应的值,一个萝卜一个坑!

dic(键)或者dic.Item(键)

4、返回全部键和值-Keys、Items方法
keys方法返回的结果是一个一维数组arr,上维lbound(arr)为0,返回全部键(key)

同样Items可以返回值,键和值是对应的!d(key1) 还是对应arrItems中的第一个值!

5、删除内容-Remove 、RemoveAll

从字典中删除指定key的内容,可以使用Remove方法。
下面演示从d字典中删除“AOO1”及其值,最终我们可以看到删除后字典中只剩下“A002”和“A003”

如果想清空字典,可以使用RemoveAll方法

6、字典中多少个元素-Count属性

7、是否区分大小写CompareMode属性
总体来说,0(BinaryCompare)区分,1(TextCompare)不区分。

设置为0,区分大小写,可以正常添加到字典中!

实战案例

案例1 、提取姓名中的唯一值
从上面学习,我们知道字典的key必须唯一,利用这点可以实现对数据去重。

① Exists – 判断姓名是否存在

② Add – 姓名不存在就添加到字典中
③ Count – 获取字典元素个数
④ Keys – 获取全部键(key),也就是删除重复值后的姓名

案例2按姓名统计每人的销售

字典的累加讲解:d(arr(i, 2)) 就是获取对应key的值d(key),arr(i,2)第二列也就是姓名。d(arr(i, 2)) + arr(i, 3) 就是获取目前字典中对应的金额再加上本次循环的金额 ,最后再重新赋值给 d(arr(i, 2)) ,相当于更新字典中对应姓名的金额为已有金额+当前金额。

 

PS:这是字典对象应用的基本介绍,其实说到底字典就是一个二维数组Arr(1 to n,1 to 2),和数组不同的是它的第2维的最大上界为2,相当于2列单元格,第1列存放的是关键字,这个关键字是除了数组以外的任何类型;第2列存放的是这个关键字对应的项,它可以是数据的任何类型或者为空。当然数组+字典还有很多其他的应用,比如双向查找、多条件查找、单条件求和、多条件求和、多列求和、字典法排序等等非常多的使用价值。

关于字典的更详细解读,请移步此文!

说明:此处为文章核心内容,公开接受打赏。打赏将用于更好的产品开发、方案设计。原创不易,感谢大力支持工作
请打赏 4.99元 后查看!

提醒:本打赏程序目前只接入了支付宝接口,为了配合广大读者朋友们更好的阅读需求,你可以使用文章结尾处的打赏功能(支持微信和支付宝支付窗口)。再次感谢各位对本站的支持!(PS:免登录查看模式支持7天免费查看,若您的IP不变可永久查看。打赏后刷新一下页面即可查看隐藏内容

上一条: 下一条:
扫一扫,加站长微信!关闭
二维码