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 联机帮助