欢迎光临!弹性体技术站 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不变可永久查看。打赏后刷新一下页面即可查看隐藏内容

上一条: 下一条:
扫一扫,加站长微信!关闭
二维码
xhmsater liebelib.net hardx.com
chachi ko choda onlyindianporn2.com tamilnadu sex film
indiangaysex videos apacams.com haryana chut
xvideo free porn dirtyindianporn2.com 3gp xxx sex videos
reshma and salman sex video freeindianporn3.com nice girl sex video
malllu porn hindiporn2.com hindi video sexy chudai
indians real sex videos kings-porno.com roshni prakash
joinsex bananocams.com bazigar film
www new hindi sex video com freeindianporn3.com kashmiri girl sex
x vdieos dirtyindianporn.info sexfalm
nude bangali girl pakistanporn.info hot call girl video
vedo javmobile.mobi www.indian uncovered.com
xxx indin kashtanka.mobi kuttywapcom
xossiop 2beeg.me sex with house maid
damp lips fuckindiantube.mobi porn hup.com