问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VBA里面的字典是怎么回事,有多大的用处呢?可以在什么时候用?请高手解答一下,谢谢!!111

发布网友 发布时间:2022-12-01 15:46

我来回答

2个回答

热心网友 时间:2023-11-07 13:18

创建字典的两个方法
1 引用 c:\windows\system32\scrrun.dll 然后 dim d as new Dictionary
2 Set d = CreateObject("Scripting.Dictionary")
字典的四个属性
CompareMode 决定key的比较方法 BinaryCompare(默认方法) 二进制方式比较,即a,A是不同字符
TextCompare '文本方式比较,即a,A是相同字符
vbDatabaseCompare 仅用于 Microsoft Access。进行基于您自己数据库中信息的比较。
如果用recordset做key的话vbDatabaseCompare方式就有用了,因为用的少没有测试过
Count 计算字典中的条目数量 s = d.count s 是一个long值
Key 也就是Item的代码通常是整数或字符串,可以是除数组外的任何类型,在一个字典中每一个key都是唯一的
一般利用这个特点去除重复值
Item 可以是任何对象(不含自定义数据):数字,字符串,数组,对象(窗体,控件,文件。。。。)
字典的六个方法
Add 向字典添加内容 d.add "a",10000,或 d("王先生")= "010-87654321"
向字典添加对象 set d("mysheet") = Sheet1 Set d("mybook") = ThisWorkbook
注意 set 关键字
Exists 判断keys中有没有要找的key,返回 true 或 false
s = d.exists("王先生"), s 是 true 因为上面已经添加了王先生
Keys 学过英文吧?Key的复数形式,返回一个一维数组 arr= d.keys
Items 同上 arr = d.items
Remove 按照key从字典中删除一个项目 d.remove("王先生")
RemoveAll 清空字典 d.RemoveAll 此时 d.count 为 0字典简单,好学又好用 总共10种属性方法.
描述
在一个 Dictionary 对象中设置一个 key。
语法
object.Key(key) = newkey
Key 属性具有下列部分:
部分 描述
object 必需的。总是一个 Dictionary 对象的名字。
key 必需的。被更改的 Key值。
newkey 必需的。替换指定 key 的新值。

说明
如果在更改某个 key 时,没有找到 key,则会出现运行时错误。
Item 属性

描述
对 Dictionary 对象中指定的 Key,设置或返回一个 Item 。对于集合来说,基于指定的 Key ,返回一个 Item 。读/写属性。
语法
object.Item(key) [= newitem]
Item 属性具有下列部分:
部分 描述
object 必需的。总是一个集合或 Dictionary 对象的名称。
key 必需的。与被检索或添加的条目相关联的 Key 。
newitem 可选的。仅用于 Dictionary 对象;没有用于集合的应用程序。如果提供的话,newitem 是与指定的 Key 相关联的新值。
说明
如果在改变某个 item 时,没有找到 key,则用指定的newitem创建一个新的 key 。如果在试图返回某个已存在条目时,没有找到 key,则创建一个新 key,且其相应的条目为空。
Count 属性

描述
返回集合或 Dictionary 对象中的条目数。只读。
语法
object.Count
object 总是“应用于”列表中某一项的名称。
说明
下面的代码举例说明了 Count 属性的使用方法:
Dim a, d, i '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" '添加一些关键字和条目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
a = d.Keys '获得关键字
For i = 0 To d.Count -1 '遍及数组
Print a(i) '打印关键字
Next
...

CompareMode 属性

描述
设置或返回某个 Dictionary 对象中的比较字符串关键字的比较模式。
语法
object.CompareMode[ = compare]
CompareMode 属性具有下列部分:
部分 描述
object 必需的。总是一个 Dictionary 对象的名称。
compare 可选的。如果提供的话,compare 是一个代表比较模式的值,该比较模式用于象 StrComp 这样的函数。

设置
compare 参数可以具有下列值:
常数 值 描述
VbUseCompareOption –1 使用 Option Compare 语句的设置值进行比较。
vbBinaryCompare 0 进行二进制比较。
vbTextCompare 1 进行文字比较。
vbDatabaseCompare 2 仅用于 Microsoft Access。进行基于您自己数据库中信息的比较。

说明
如果试图对已经包含数据的 Dictionary 对象的比较模式进行更改的话,就会出错。
CompareMode 属性所用的参数值与 StrComp 函数所用的 compare 参数相同。可以用大于 2 的值表示使用特定 Locale IDs (LCID) 的比较。

热心网友 时间:2023-11-07 13:18

没什么用Dictionary对象用于存储数据关键字和条目对(即类似“key=value”的形式)。它可以存取任何形式的数据的条目。每个条目都与一个唯一的关键字相关联。该关键字用来检索单个条目,通常是整数或字符串,可以是除数组外的任何类型。下面的代码举例说明了如何创建一个 Dictionary 对象:Dim d '创建一个变量Set d = CreateObject(Scripting.Dictionary)d.Add "a", "Athens" '添加一些关键字和条目d.Add "b", "Belgrade"d.Add "c", "Cairo"Dictionary常用的操作有Add(添加)、Remove(删除)、Exists(检查某个关键字是否在字典中);常用的属性有Item(key)(获取某个关键字对应的数据),等等。差不多就有点象平时我们在算法中提到的HashTable吧。
参考资料:Office 联机帮助
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问哪位大哥“谨谢不敏”是什么意思? 小女子尽谢不敏什么意思 谨谢不敏是什么意思? 敬谢不敏是是什么意思? 谢不敏的意思是什么 谢不敏词语解释 什么叫“谢不敏”? 6岁儿童晚上睡眠不好怎么办 六岁孩子精神异常怎么办 小程序开发需要什么技术 没有技术如何开发小程序 英语各种时态应该什么时候用 will是不是一般用于除了第一人称,?但有时也可用于第一人称,那么什么时候可以用于第一人称呢? what's+going+on,可以用在什么时候? from to可以用于什么时候? 先生英语怎么读 可以用于什么时候呢 马年女宝宝好听又吉祥的名字 生菜沙拉怎么做 生菜沙拉的做法 请教专业人士,大金中央空调报价 朋友圈心情说说语录 适合发朋友圈的哲理句子 法令纹明显怎么办 法令纹的形成原因 照镜子自己特别丑 法令纹还特别深怎么回事? 鸟蛋摔裂了进空气了蛋液流出来了怎么补救? 赶着去吃午饭说说心情 be well used to do的同义词组是什么 he is well used to his brother这句话什么意思? 用be well used...还是be good used...呀, 为什么? The money is well used to help disabled people.为什么把well放在used的前面?为什么把副词放在这个位置 为什么是be well used 而不是be used well 不是副词通常放在动词之后吗?十分不解 be well used to中well used的结构是怎样的? well是副词,为什么有短语 be well used? 化学表达式读法可以读作某化某和某酸某,既然这两种有区别,那么这两种分别用于什么时候呢? 科鲁兹的电瓶一般用得了什么多久? 科鲁泽延保一年含电瓶吗 捷途x70s导航在哪里啊 捷途x70导航系统怎么用 捷途汽车的音乐蓝牙在哪个位置 捷途汽车蓝牙连上导航没声音怎么回事 21款捷途x70m有雾灯预留线吗 x70m捷途的通病是什么? 捷途x70m是什么级别的汽车 加特林豌豆射手用不了 植物大战僵尸2植物的属性是指什么 快来了解一下 植物大战僵尸2国际版大型加特林豌豆怎么获得 创业只有好处没有弊端是对的还是错的? 《我是什么》中的我是对人类只有好处没有坏处的,这道题是对是错 大家说说,做什么事情,对自己来说,是只有好处,没有坏处的? 谦虚是不是只有好处没有坏处 阳台承重一般为多少公斤 阳台可以放浴缸吗 阳台承重一般是多少?放个鱼缸在阳台可以吗? 老小区能阳台能承受300斤鱼缸吗