在Excel里试过了字典以后,发现比我以前常用的方法效率高,还好用,就隔三差五地用起来了。不过, 虽然字典对象本身不复杂,但依旧常常有忘记了的地方,同一个问题会反反复复地百度,真不应该。 今天就抽一点点时间, 自己整理一回,免得老是麻烦度娘哦。 字典(Dictionary)对象: 相当于一种联合数组,由具有唯一性的关键字(Key)和它的项(Item)联合组成。就好像一本字典,由字条和对应的注解组成。 名词对照: Dictionary 字典 Key 关键字 Item 项(项目)
下面分三个方面讲解。 首先是方法: 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 对象中清除所有的关键字,项目对。
其次是属性: 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属性 object.CompareMode[ = 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", "名" tarr=dic.Items [C1].Resize(dic.Count,1)=Application.Transpose(tarr) 更多例子可参考下面的参考资料。 正文完 参考资料
|