前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

VBA中的字典(一)(excel vba 字典)

qiguaw 2025-05-02 12:54:54 资源文章 4 ℃ 0 评论


一直想写几篇文章来总结一下过去VBA中字典的使用经验。当然这些都是站在前人的肩膀上完成的。字典相对于集合或数组来说,更容易理解和运用。

字典在数据处理中,运行速度是极快的,搭配一些函数来使用,我是认为是相当完美了。我在字典使用中,主要用到以下几点:

  1. 去重
  2. 求和
  3. 计数
  4. 数据匹配

我将会分别用几篇文章来分享一下字典的使用经验。

字典的声明

字典不是VBA内置的类型,VBA中的字典是微软Windows脚本语言中的一个很有用的对象,字典是由具有唯一性的关键字(Key)和它的项(Item)组成的集合,Key相当于字典中的每个字,具有不重复性,Item相当于对字典中每个字对应的解释。

因为字典不是VBA内置的类型,它是Windows脚本语言的类型,所以声明字典的方法就和VBA内置对象不同,它有两种方法声明,一种是前期绑定声明,一种是后期绑定声明。前期声明的话,我们需要去引用对应的scrrun.dll文件,相对来说比较麻烦。

因此,在VBA中,我们大都使用后期声明。如下:

Dim d As Object
Set d = CreateObject("scripting.dictionary") 	'建立字典

字典如何赋值

字典赋值的时候,有三个参数是必需的。如下:

语法:

[DictionaryObject].Add([Key], [Item])

参数:

参数

说明

[DictionaryObject]

必需的。字典的名称

[Key]

必需的。在 Dictionary 中引用 Item 的数据。

[Item]

必需的。设置或返回 Dictionary 中 Item 的值

如下面的例子:

Dim dic As Object, i As Long
Set dic = CreateObject("Scripting.Dictionary")
For i = 1 To 100
dic.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

这篇文章我们对字典的一些关键信息进行了梳理,简要的描述了字典的一些操作。后面我们将深入的对字典实际中的各种应用方法逐一的进行说明。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表