Dictionary对象的使用

来源:互联网 发布:七喜cms 编辑:程序博客网 时间:2024/05/17 04:42

合理使用Dictionary(数据字典)对象,可以提高代码运行速率。通过创建并初始化Dictionary对象,建立“键-值”对,通过Dictionary的exists(key1)方法和Item(key1)属性可以快速的查找出键的值,而不需要每次遍历整个表。

 

Dictionary相关属性和方法:

1.创建Dictionary

2.属性

CompareMode    设定或返回键的字符串比较模式
Count                 返回Dictionary里的键/条目对的数量
Item(key)           设定或返回指定的键的条目值
Key(key)             设定键值

3.方法

Add(key,item)    增加键/条目对到Dictionary
Exists(key)        如果指定的键存在,返回True,否则返回False
Items()              返回一个包含Dictionary对象中所有条目的数组
Keys()               返回一个包含Dictionary对象中所有键的数组
Remove(key)     删除一个指定的键/条目对
RemoveAll()       删除全部键/条目对

 

3.应用实例:

当前工作簿中有三张工作表——问题跟踪、映射目录和SDM_ALL,结构为:

问题跟踪(……,数据表,字段,问题类型,……);(已排序)

映射目录(……,表名,……,问题跟踪);

SDM_ALL(……,表名,字段名,……,问题跟踪);

要求根据“问题跟踪.数据表=映射目录.表名”连接,在映射目录的问题跟踪列创建连接,显示内容为“>>”,连接到问题跟踪表相应的第一条记录。类似的,根据表名和字段名做连接,在SDM_ALL的问题跟踪列创建连接,显示内容为“>>”,连接到问题跟踪表相应的记录。

 

4.相关代码

 

 

5.几点说明

(1)为列或行定义变量,这样在表结构变化时,如在插入了一个列,只需要对列变量重新复制即可,增强程序的灵活性。

(2)使用UCase()函数将小写转换大写字母。

(3)当主键为多列时,如表名+字段名唯一识别一条记录,可使用一个不常用的字符如“#”将表名和字段名拼接起来,作为Dictionary的键值key。

        ColDict.Add UCase(Trim(QSheet.Cells(j, ENTABLE)) & "#" & Trim(QSheet.Cells(j, ENCOL))), j

(4)字符串连接符号——“&”。

        k = TbDict.Item(UCase(Trim(CSheet.Cells(i, CENTABLE))))
        SubAddr = QSheet.Name & "!" & k & ":" & k

       一定要用QSheet.Name,这样才能获得sheet名,如果写成QSheet报错。

(5)使用Hyperlinks对象的Add方法创建超链接:

       Sheets("映射目录").Hyperlinks.Add Anchor:=CSheet.Cells(i, CTRACK), Address:="", SubAddress:=SubAddr, TextToDisplay:=">>"

        Anchor为创建链接的对象,SubAddress为链接到的地址。

 

原创粉丝点击