如何在vba中使用Dictionary字典对象?

经常写vba代码就一定需要用到Dictionary字典对象。

字典对象可以用来存储数据对,每对数据由数据内容和数据的键值组成,每个数据内容有唯一的一个键值与之匹配。

当遇到重复的键值时,将会报错。

所有的数据键值和所有的数据内容都存储在相应的数组中。

由于它只能存储唯一的键值的特性,经常利用字典对象来处理涉及到重复值的问题。

同时由于它内在的特殊性,字典对象读取数据的速度特别快。

它主要有以下方法和属性:

  1. Add方法:添加键值和项目对,如果键值已经存在,继续添加会报错。
object.Add (key, item)

2.Exists方法:判断键值是否存在。

object.Exists(key)

3.Remove方法:删除指定的键值、项目对

object.Remove(key)

4.RemoveAll方法:删除字典中所有的键值、项目对

object.RemoveAll( )

5.Keys方法:返回所有的键值数组;Items方法:返回所有的项目数组。

object.Keys( )
object.Items( )

6.Count属性:返回字典中含有的键值、项目对。

7.Item属性:返回或者设置指定键值对应的项目。

object.Item(key)[ = newitem]

8.Key属性:设置指定的键值为其它键值,如果指定的键值不存在,则新增一个键值,同时项目对为空。

object.Key(key) = newkey

9.CompareMode属性:设置用于对比键值是否重复的模式,可以是文本、二进制、数据库或者是指定的LCID比较模式。

object.CompareMode[ = compare]

以下是一个通用的在vba中使用Dictionary字典对象的代码:

Sub QQ1722187970()
    '定义字典对象变量
    Dim oDic As Object
    '创建字典对象
    Set oDic = CreateObject("Scripting.Dictionary")
    Dim arrKey
    Dim arrItem
    With oDic
        '添加键和项目(key,item),其中键不能重复
        .Add 1, "a"
        .Add 2, "b"
'        判断是否存在某个键
        If .exists(2) Then
        Else
        End If
        '把键2的项目修改为"d"
        .Item(2) = "d"
        '返回键的数组
        arrKey = .keys
        '返回项目的数组
        arrItem = .items
        '删除某个键值
        .Remove (1)
        '清空字典
        .RemoveAll
    End With
    '释放字典对象,清空内存
    Set oDic = Nothing
End Sub

如果想要详细的了解字典对象的属性、方法、以及它的帮助文档,可以访问Dictionary字典对象

       

发表评论