vba字典(vba字典用法)
一直想写几篇文章来总结一下过去VBA中字典的使用经验。当然这些都是站在前人的肩膀上完成的。字典相对于集合或数组来说,更容易理解和运用。
字典在数据处理中,运行速度是极快的,搭配一些函数来使用,我是认为是相当完美了。我在字典使用中,主要用到以下几点:
去重求和计数数据匹配我将会分别用几篇文章来分享一下字典的使用经验。
字典的声明字典不是VBA内置的类型,VBA中的字典是微软Windows脚本语言中的一个很有用的对象,字典是由具有唯一性的关键字(Key)和它的项(Item)组成的集合,Key相当于字典中的每个字,具有不重复性,Item相当于对字典中每个字对应的解释。
因为字典不是VBA内置的类型,它是Windows脚本语言的类型,所以声明字典的方法就和VBA内置对象不同,它有两种方法声明,一种是前期绑定声明,一种是后期绑定声明。前期声明的话,我们需要去引用对应的scrrun.dll文件,相对来说比较麻烦。
因此,在VBA中,我们大都使用后期声明。如下:
Dim d As ObjectSet d = CreateObject("scripting.dictionary") '建立字典
字典如何赋值
字典赋值的时候,有三个参数是必需的。如下:
语法:
[DictionaryObject].Add([Key], [Item])
参数:
参数 | 说明 |
[DictionaryObject] | 必需的。字典的名称 |
[Key] | 必需的。在 Dictionary 中引用 Item 的数据。 |
[Item] | 必需的。设置或返回 Dictionary 中 Item 的值 |
如下面的例子:
Dim dic As Object, i As LongSet dic = CreateObject("Scripting.Dictionary")For i = 1 To 100dic.Add i, ""Next
我们设置字典的名称为dic,并将1到100分别赋值给了Key。但每个对应的Item均为空。
字典对象的方法字典有6个方法,如下表:
方法 | 说明 |
Add(key,item) | 增加键/条目对到 Dictionary |
Exists(key) | 如果指定的键存在,返回 True,否则返回 False |
Items() | 返回一个包含 Dictionary 对象中所有条目的数组 |
Keys() | 返回一个包含 Dictionary 对象中所有键的数组 |
Remove(key) | 删除一个指定的键/条目对 |
RemoveAll() | 删除全部键/条目对 |
上面我们赋值的时候,已经使用add的方法为字典赋值了。
后面我们会通过各种实例对字典中的各种方法进行讲解。因此暂不详述了。
字典的四个属性属性 | 说明 |
CompareMode | 设定或返回键的字符串比较模式 |
Count | 只读。返回 Dictionary 里的键/条目对的数量 |
Item(key) | 设定或返回指定的键的条目值 |
Key(key) | 设定键值 |
下面的代码举例说明字典中 Count 属性的使用方法:
Dim a, d, i '创建一些变量Set d = CreateObject("Scripting.Dictionary")d.Add "a", "Athem" '添加一些关键字和条目。d.Add "b", "Belgre"d.Add "c", "Caire"a = d.Keys '获得关键字For i = 0 To d.Count -1 '遍及数组Debug.Print a(i) '打印关键字Next
这篇文章我们对字典的一些关键信息进行了梳理,简要的描述了字典的一些操作。后面我们将深入的对字典实际中的各种应用方法逐一的进行说明。