VBA的字典对象小结

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VBA的字典对象小结

VBA的字典对象效率高,还好用。不过,虽然字典对象本身不复杂,但依旧会有忘记了的地方,今天就抽一点点时间,自己整理个小节,方便以后查用。2019-05-19

字典(Dictionary)对象:

相当于一种联合数组,由具有唯一性的关键字(Key)和它的项(Item)联合组成。就好像一本字典,由字条和对应的注解组成。

名词对照:

下面分三个方面讲解。

首先是方法:

方法有6个:Add、Exists、Keys、Items、Remove、RemoveAll。

Add方法

object.Add (key, item)

向Dictionary 对象中添加一个关键字项目对。

如果key 已经存在,将导致一个错误。

Exists方法

object.Exists(key)

如果Dictionary 对象中存在所指定的关键字则返回true,否则返回false。Keys方法

object.Keys( )

返回一个数组,其中包含了一个Dictionary 对象中的全部现有的关键字。Items方法

object.Items( )

返回一个数组,其中包含了一个Dictionary 对象中的所有项。

Remove方法

object.Remove(key)

Remove 方法从一个Dictionary 对象中清除一个关键字,项目对。

如果所指定的关键字,项目对不存在,那么将导致一个错误。

RemoveAll方法

object.RemoveAll( )

RemoveAll 方法从一个Dictionary 对象中清除所有的关键字,项目对。

其次是属性:

属性有4个:Count、Key、Item、CompareMode。

Count属性

object.Count

返回一个Dictionary 对象中的项目数。只读属性。

Key属性

object.Key(key) = newkey

在Dictionary 对象中设置一个key。

如果没有发现该key,那么将创建一个新的key 并且其item 被设置为空。

Item属性

object.Item(key)[ = newitem]

在一个Dictionary 对象中设置或者返回所指定key 的item。对于集合则根据所指定的key 返回一个item。读/写。

newitem 是可选项。仅适用于Dictionary 对象;是与所指定的key 相关联的新值。

如果没有找到该item,那么将利用所指定的newitem 创建一个新的key。

如果在试图返回一个已有项目的时候没有找到key,那么将创建一个新的key 且其相关的项目被设置为空。

CompareMode属性

pareMode[ = compare]

设置或者返回在Dictionary 对象中进行字符串关键字比较时所使用的比较模式。

compare 是可选项,代表比较模式的值。可以是0 (二进制)、1 (文本), 2 (数据库)。

如果试图改变一个已经包含有数据的Dictionary 对象的比较模式,那么将导致一个错误。

最后是经典代码举例:

这两个例子很有Excel特色。

例一:把字典中所有的关键字赋给以B1单元格开始的单元格区域中。

Dim dic, karr

Set dic = CreateObject("Scripting.Dictionary")

dic.Add "a", "数据A"

dic.Add "b", "数据B"

dic.Add "c", "数据C"

karr=dic.Keys '数组,下限0

[B1].Resize(dic.Count,1)=Application.Transpose(karr)

'Resize第一个参数是行数,第二个参数是列数。

'Transpose,把水平排列的置换成竖向排列。

例二:把字典中所有的关键字对应的项赋给以C1单元格开始的单元格区域中。

Dim dic, tarr

Set dic = CreateObject("Scripting.Dictionary")

dic.Add "a", "数据A"

dic.Add "b", "数据B"

dic.Add "c", "数据C"

tarr=dic.Items

[C1].Resize(dic.Count,1)=Application.Transpose(tarr)

正文完

相关文档
最新文档