常见字典用法集锦及代码详解(全)_蓝桥玄霜

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

2

字典的简介

必选项。总是一个Dictionary 对象的名称。

key

必选项。与被添加的item 相关联的key。

item

必选项。与被添加的key 相关联的item。

说明

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

常用语句:

Dim d As Objec 【声明为对象】

Set d = CreateObject("Scripting.Dictionary") 【创建字典对象,并把字典对象赋给变量d。】

d.Add "a", "Athens" 【添加一关键字” a”和对应于它的项” Athens”。】 d.Add "b", "Belgrade"

【添加一关键字” b”和对应于它的项” Belgrade”。】 d.Add "c", "Cairo" 【添加一关键字” c”和

对应于它的项” Cairo ”。】

Exists 方法

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

object.Exists(key)

参数object 必选项。总是一个Dictionary 对象的名称。

key 必选项。需要在Dictionary 对象中搜索的key 值。

常用语句:

Dim d As Objec 【声明为对象】

Dim msg$ 【声明为字符串数据类型(String) ,一般写法为Dim msg As String 】

Set d = CreateObject("Scripting.Dictionary") 【创建字典对象,并把字典对象赋给变量d。】

d.Add "c", "Cairo"

If d.Exists("c") Then 【如果字典中存在关键字” c”,那么执行下面的语句。】

msg = "指定的关键字已经存在。" 【把"指定的关键字已经存在。"字符串赋给变量msg。】Else 【否则执行下面的语句。】

msg = "指定的关键字不存在。"【把"指定的关键字不存在。"字符串赋给变量msg。】End If 【结束If ⋯Else⋯Endif 判断。】

Keys 方法

返回一个数组,其中包含了一个Dictionary 对象中的全部现有的关键字。object.Keys( )

其中object 总是一个Dictionary 对象的名称。

常用语句:

Dim d, k 【声明变量, d 见前例;k 默认是可变型数据类型(Variant) 。】

d.Add "b", "Belgrade"

3

常见字典用法集锦及代码详解

4

k=d.Keys 【把字典中存在的所有的关键字赋给变量k 。得到的是一个一维数组,下限为0,

上限为 d.Count-1。这是数组的默认形式。】

[B1].Resize(d.Count,1)=Application.Transpose(k)

【这句代码是很常用很经典的代码,所以这里要多说一些。】

Resize 是Range 对象的一个属性,用于调整指定区域的大小,它有两个参数,第一个是行数,本例是d.Count,指的是字典中关键字的数量,整本字典中有多少个关键字,本例 d.Count=3 ,因为有 3 个关键字。呵呵,是不是说多了。

第二个是列数,本例是1。这样=左边的意思就是:把一个单元格B1 调整为以B1 开始的一列单

元格区域,行数等于字典中关键字的数量 d.Count ,就是把单元格B1调整为单元格区域B1:B3 了。

=右边的k 是个一维数组,是水平排列的,我们知道Excel 工作表函数里面有个转置函数Transpose,用它可以把水平排列的置换成竖向排列。但是在VBA 中不能直接使用该工作表函数,需要

通过Application 对象的WorksheetFunction 属性来使用它。所以完整的写法是Application. WorksheetFunction.Transpose(k) ,中间的WorksheetFunction 可省略。现在可以解释这句代码了:把字典中所有的关键字赋给以B1 单元格开始的单元格区域中。

Items 方法返回一个数组,其中包含了一个Dictionary 对象中的所有项目。object.Items( )

其中object 总是一个Dictionary 对象的名称。

常用语句:

Dim d, t 【声明变量, d 见前例;t 默认是可变型数据类型(Variant) 。】

Set d = CreateObject("Scripting.Dictionary")

d.Add "a", "Athens"

d.Add "b", "Belgrade"

d.Add "c", "Cairo"

t=d.Items 【把字典中所有的关键字对应的项赋给变量t。得到的也是一个一维数组,下限为0,上限为 d.Count-1 。这是数组的默认形式。】

[C1].Resize(d.Count,1)=Application.Transpose(t) 【把字典中所有的关键字对应的项赋给以C1 单元格开始的单元格区域中。】

Remove 方法

Remove 方法从一个Dictionary 对象中清除一个关键字,项目对。object.Remove(key )

其中object 总是一个Dictionary 对象的名称。

key

必选项。key 与要从Dictionary 对象中删除的关键字,项目对相关联。说明

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

常用语句:

Dim d

Set d = CreateObject("Scripting.Dictionary")

d.Add "a", "Athens"

d.Add "b", "Belgrade"

d.Add "c", "Cairo"

d.Remove(“b”) 【清除字典中”b”关键字和与它对应的项。清除之后,现在字典里只 2 个关键

相关文档
最新文档