EXCEL VBA 常见字典用法集锦及代码详解(全)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见字典用法集锦及代码详解
前言
凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。有了它们,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。
凡是上过EH论坛的想学习VBA里面字典用法的,几乎都看过研究过northwolves狼版主、oobird版主的有关字典的精华贴和经典代码。我也是从这里接触到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化的高手们致敬,从他们那里我们也学到了很多,也得到了提高。
字典对象只有4个属性和6个方法,相对其它的对象要简洁得多,而且容易理解使用方便,功能强大,运行速度非常快,效率极高。深受大家的喜爱。
本文希望通过对一些字典应用的典型实例的代码的详细解释来给初次接触字典和想要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。
给代码注释估计是大家都怕做的,因为往往是出力不讨好的,稍不留神或者自己确实理解得不对,还会贻误他人。所以下面的这些注释如果有不对或者不妥当的地方,请大家跟帖时指正批评,及时改正。
字典的简介
字典(Dictionary)对象是微软Windows脚本语言中的一个很有用的对象。
附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹和文件的(FileSystemObject)对象也是微软Windows脚本语言中的一份子。
字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成。就好像一本字典书一样,是由很多生字和对它们对应的注解所组成。比如字典的“典”字的解释是这样的:
“典”字就是具有唯一性的关键字,后面的解释就是它的项,和“典”字联合组成一对数据。
常用关键字英汉对照:
Dictionary 字典
Key 关键字
Item 项,或者译为条目
字典对象的方法有6个:Add方法、Keys方法、Items方法、Exists方法、Remove方法、RemoveAll方法。
Add方法
向Dictionary 对象中添加一个关键字项目对。
object.Add (key, item)
参数
object
必选项。总是一个Dictionary 对象的名称。
key
必选项。与被添加的item 相关联的key。
item
必选项。与被添加的key 相关联的item。
说明
如果key 已经存在,那么将导致一个错误。
常用语句:
Dim d
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
代码详解
1、Dim d :创建变量,也称为声明变量。变量d声明为可变型数据类型(Variant),d后面没有写数据类型,默认就是可变型数据类型(Variant)。也有写成Dim d As Object的,声明为对象。
2、Set d = CreateObject("Scripting.Dictionary"):创建字典对象,并把字典对象赋给变量d。这是最常用的一句代码。所谓的“后期绑定”。用了这句代码就不用先引用c:\windows\system32\scrrun.dll了。
3、d.Add "a", "Athens":添加一关键字”a”和对应于它的项”Athens”。
4、d.Add "b", “Belgrade”:添加一关键字”b”和对应于它的项”Belgrade”。
5、d.Add "c", “Cairo”:添加一关键字”c”和对应于它的项”Cairo”。
2
Exists方法
如果Dictionary 对象中存在所指定的关键字则返回true,否则返回false。
object.Exists(key)
参数
object
必选项。总是一个Dictionary 对象的名称。
key
必选项。需要在Dictionary 对象中搜索的key 值。
常用语句:
Dim d, msg$
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
If d.Exists("c") Then
msg = "指定的关键字已经存在。"
Else
msg = "指定的关键字不存在。"
End If
代码详解
1、Dim d, msg$ :声明变量,d见前例;msg$ 声明为字符串数据类型(String),一般写法为Dim msg As String。String的类型声明字符为美元号($)。
2、If d.Exists("c") Then:如果字典中存在关键字”c”,那么执行下面的语句。
3、msg = "指定的关键字已经存在。" :把"指定的关键字已经存在。"字符串赋给变量msg。
4、Else :否则执行下面的语句。
5、msg = "指定的关键字不存在。" :把"指定的关键字不存在。"字符串赋给变量msg。
6、End If :结束If …Else…Endif判断。
Keys方法
返回一个数组,其中包含了一个Dictionary 对象中的全部现有的关键字。
object.Keys( )
其中object 总是一个Dictionary 对象的名称。
常用语句:
3