EXCEL VBA 常见字典用法集锦及代码详解(全)

上传人:ji****72 文档编号:37516170 上传时间:2018-04-17 格式:DOC 页数:53 大小:2.03MB
返回 下载 相关 举报
EXCEL VBA 常见字典用法集锦及代码详解(全)_第1页
第1页 / 共53页
EXCEL VBA 常见字典用法集锦及代码详解(全)_第2页
第2页 / 共53页
EXCEL VBA 常见字典用法集锦及代码详解(全)_第3页
第3页 / 共53页
EXCEL VBA 常见字典用法集锦及代码详解(全)_第4页
第4页 / 共53页
EXCEL VBA 常见字典用法集锦及代码详解(全)_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《EXCEL VBA 常见字典用法集锦及代码详解(全)》由会员分享,可在线阅读,更多相关《EXCEL VBA 常见字典用法集锦及代码详解(全)(53页珍藏版)》请在金锄头文库上搜索。

1、常见字典用法集锦及代码详解前言凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各 样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。有了它们,我们可以 很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。 凡是上过 EH 论坛的想学习 VBA 里面字典用法的,几乎都看过研究过 northwolves狼版主、oobird 版主的有关字典的精华贴和经典代码。我也是从这里接触 到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化 的高手们致敬,从他们那里我们也学到了很多,也得到了提高。 字典对象只有 4 个属性和 6 个方法,

2、相对其它的对象要简洁得多,而且容易理解使 用方便,功能强大,运行速度非常快,效率极高。深受大家的喜爱。 本文希望通过对一些字典应用的典型实例的代码的详细解释来给初次接触字典和想 要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。 给代码注释估计是大家都怕做的,因为往往是出力不讨好的,稍不留神或者自己确 实理解得不对,还会贻误他人。所以下面的这些注释如果有不对或者不妥当的地方,请 大家跟帖时指正批评,及时改正。字典的简介字典(Dictionary)对象是微软 Windows 脚本语言中的一个很有用的对象。 附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹

3、和文件 的(FileSystemObject )对象也是微软 Windows 脚本语言中的一份子。 字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项 (Item)联合组成。就好像一本字典书一样,是由很多生字和对它们对应的注解所组成。 比如字典的“典”字的解释是这样的:“典”字就是具有唯一性的关键字,后面的解释就是它的项,和“典”字联合组成一对 数据。2常用关键字英汉对照: Dictionary字典字典 Key关键字关键字 Item项,或者译为项,或者译为 条目条目字典对象的方法有 6 个:Add 方法、Keys 方法、Items 方法、Exists 方法、 Remove

4、方法、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

5、 “c“, “Cairo“ 代码详解代码详解 1、Dim d :创建变量,也称为声明变量。变量 d 声明为可变型数据类型(Variant), d 后面没有写数据类型,默认就是可变型数据类型(Variant)。也有写成 Dim d As Object 的,声明为对象。 2、Set d = CreateObject(“Scripting.Dictionary“):创建字典对象,并把字典对象赋给 变量 d。这是最常用的一句代码。所谓的“后期绑定” 。用了这句代码就不用先引用 c:windowssystem32scrrun.dll 了。 3、d.Add “a“, “Athens“:添加一关键字”a”和

6、对应于它的项”Athens”。 4、d.Add “b“, “Belgrade”:添加一关键字”b”和对应于它的项”Belgrade”。 5、d.Add “c“, “Cairo”:添加一关键字”c”和对应于它的项”Cairo”。 3Exists 方法 如果 Dictionary 对象中存在所指定的关键字则返回 true,否则返回 false。 object.Exists(key) 参数 object 必选项。总是一个 Dictionary 对象的名称。 key 必选项。需要在 Dictionary 对象中搜索的 key 值。常用语句: Dim d, msg$ Set d = CreateObje

7、ct(“Scripting.Dictionary“)d.Add “a“, “Athens“ d.Add “b“, “Belgrade“d.Add “c“, “Cairo“If d.Exists(“c“) Thenmsg = “指定的关键字已经存在。“Elsemsg = “指定的关键字不存在。“End If 代码详解代码详解 1、Dim d, msg$ :声明变量,d 见前例;msg$ 声明为字符串数据类型(String),一 般写法为 Dim msg As String。String 的类型声明字符为美元号 ($)。 2、If d.Exists(“c“) Then:如果字典中存在关键字”c”,

8、那么执行下面的语句。 3、msg = “指定的关键字已经存在。“ :把“指定的关键字已经存在。“字符串赋给 变量 msg。 4、Else :否则执行下面的语句。 5、msg = “指定的关键字不存在。“ :把“指定的关键字不存在。“字符串赋给变量 msg。 6、End If :结束 If ElseEndif 判断。Keys 方法 返回一个数组,其中包含了一个 Dictionary 对象中的全部现有的关键字。 object.Keys( ) 其中 object 总是一个 Dictionary 对象的名称。常用语句: Dim d, k 4Set d = CreateObject(“Scripting

9、.Dictionary“)d.Add “a“, “Athens“ d.Add “b“, “Belgrade“d.Add “c“, “Cairo“k=d.KeysB1.Resize(d.Count,1)=Application.Transpose(k) 代码详解代码详解 1、Dim d, k :声明变量,d 见前例;k 默认是可变型数据类型(Variant)。 2、k=d.Keys:把字典中存在的所有的关键字赋给变量 k。得到的是一个一维数组, 下限为 0,上限为 d.Count-1。这是数组的默认形式。 3、B1.Resize(d.Count,1)=Application.Transpose(

10、k) :这句代码是很常用很经典的 代码,所以这里要多说一些。 Resize 是 Range 对象的一个属性,用于调整指定区域的大小,它有两个参数,第 一个是行数,本例是 d.Count,指的是字典中关键字的数量,整本字典中有多少个关键 字,本例 d.Count=3,因为有 3 个关键字。呵呵,是不是说多了。 第二个是列数,本例是 1。这样左边的意思就是:把一个单元格 B1 调整为以 B1 开始的一列单元格区域,行数等于字典中关键字的数量 d.Count,就是把单元格 B1 调整 为单元格区域 B1:B3 了。 右边的 k 是个一维数组,是水平排列的,我们知道 Excel 工作表函数里面有个转

11、置函数 Transpose,用它可以把水平排列的置换成竖向排列。但是在 VBA 中不能直接使 用该工作表函数,需要通过 Application 对象的 WorksheetFunction 属性来使用它。所以 完整的写法是 Application. WorksheetFunction.Transpose(k),中间的 WorksheetFunction 可 省略。现在可以解释这句代码了:把字典中所有的关键字赋给以 B1 单元格开始的单元 格区域中。 Items 方法 返回一个数组,其中包含了一个 Dictionary 对象中的所有项目。 object.Items( ) 其中 object 总是一

12、个 Dictionary 对象的名称。常用语句: Dim d, t Set d = CreateObject(“Scripting.Dictionary“)d.Add “a“, “Athens“ d.Add “b“, “Belgrade“d.Add “c“, “Cairo“t=d.ItemsC1.Resize(d.Count,1)=Application.Transpose(t) 代码详解代码详解51、Dim d, t :声明变量,d 见前例;t 默认是可变型数据类型(Variant)。 2、t=d.Items :把字典中所有的关键字对应的项赋给变量 t。得到的也是一个一维 数组,下限为 0,

13、上限为 d.Count-1。这是数组的默认形式。 3、C1.Resize(d.Count,1)=Application.Transpose(t) :有了上面 Keys 方法的解释这 句代码就不用多说了,就是把字典中所有的关键字对应的项赋给以 C1 单元格开始的单 元格区域中。Remove 方法 Remove 方法从一个 Dictionary 对象中清除一个关键字,项目对。 object.Remove(key ) 其中 object 总是一个 Dictionary 对象的名称。 key 必选项。key 与要从 Dictionary 对象中删除的关键字,项目对相关联。 说明 如果所指定的关键字,项

14、目对不存在,那么将导致一个错误。常用语句: Dim d Set d = CreateObject(“Scripting.Dictionary“)d.Add “a“, “Athens“ d.Add “b“, “Belgrade“d.Add “c“, “Cairo“d.Remove(“b”) 代码详解代码详解 1、d.Remove(“b”):清除字典中”b”关键字和与它对应的项。清除之后,现在字典里 只有 2 个关键字了。RemoveAll 方法 RemoveAll 方法从一个 Dictionary 对象中清除所有的关键字,项目对。 object.RemoveAll( ) 其中 object 总是

15、一个 Dictionary 对象的名称。 常用语句: Dim d Set d = CreateObject(“Scripting.Dictionary“)d.Add “a“, “Athens“ d.Add “b“, “Belgrade“d.Add “c“, “Cairo“6d.RemoveAll 代码详解代码详解 1、d.RemoveAll:清除字典中所有的数据。也就是清空这字典,然后可以添加新 的关键字和项,形成一本新字典。字典对象的属性有 4 个:Count 属性、Key 属性、Item 属性、CompareMode 属性。Count 属性 返回一个 Dictionary 对象中的项目数。

16、只读属性。 object.Count 其中 object 一个字典对象的名称。 常用语句: Dim d,n% Set d = CreateObject(“Scripting.Dictionary“)d.Add “a“, “Athens“ d.Add “b“, “Belgrade“d.Add “c“, “Cairo“n = d.Count 代码详解代码详解 1、Dim d, n% :声明变量,d 见前例;n 被声明为整型数据类型(Integer)。一般写 法为 Dim n As Integer 。 Integer 的类型声明字符为百分比号 (%)。 2、n = d.Count :把字典中所有的关键字的数量赋给变量 n。本例得到的是 3。Key 属性 在 Dictionary 对象中设置一个 key。 object.Key(key) = newkey 参数: object 必选项。总是一个字典 (Dictionary) 对象的名称。 key 必选项。被改变的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号