VBA 字典的定义与简单使用(Dictionary 对象)
一、Dictionary 对象的定义
在编写vba代码时,遇到需要使用的对象,有两种引用方式,一种是前期引用,也就是先在“工具”菜单下的“引用”命令中添加需要引用的库,如下图所示。
另一种是直接用 CreateObject(“Scripting.Dictionary”)语句添加的后期引用。
这两种的区别就是,前期引用可以直接列出成员属性、方法列表,后期引用不可以直接列出成员属性、方法列表。
方式1:前期引用
前期引用 一般都是通过手动添加要引用的库的方式实现。
Dim Dict '创建变量 Set Dict = New Dictionary '创建字典对象
- 优点:可以直接列出成员属性、方法列表
- 缺点:需要手动添加引用库
方式2:后期引用
后期引用 直接用 CreateObject(“Scripting.Dictionary”)语句添加的后期引用。
Dim Dict '创建变量 Set Dict = CreateObject("Scripting.Dictionary") '创建字典对象
- 优点:不需要手动添加引用库
- 缺点:无法直接列出成员属性、方法列表
二、Dictionary 对象的简单使用
Sub testDict()
Dim Dict As '声明字典
Set Dict = CreateObject("Scripting.Dictionary") '创建字典对象
'场景一:给字典赋值
Dict(0) = "姓名" '设置字典key为数字0,value为"姓名"
Dict(Dict(0)) = "张三" '设置字典key为Dict(0),value为"张三"
Debug.Print Dict(0), Dict(Dict(0)) '姓名 张三
'场景二:RemoveAll
Dict.RemoveAll '清空字典
Dict(0) = "爱好"
Dict(Dict(0)) = "跑步"
Debug.Print Dict(0), Dict(Dict(0)) '爱好 跑步
'场景三:使用Set设置变量 Dict("childDict") 为字典对象
Set Dict("childDict") = Dict '设置字典key为"childDict",value为字典的引用
Debug.Print Dict("childDict")(0), Dict(Dict("childDict")(0)) '爱好 跑步
End Sub