字典法

来源:互联网 发布:php wsdl 调用 编辑:程序博客网 时间:2024/06/01 10:07

字典法

set d=createobject("scripting.dictionary")

上面的代码就相当于你准备好了一本空白的字典了,之后你就要往其中添加内容,比如说我们现在往字典里加入第一个词条“VBA”,并且给这个词条加上解释“一种Excel中使用的编程语言”,看下面的代码

 d("VBA")="一种Excel中使用的编程语言"

这样就给字典加了一个词条“VBA”并且给它赋了值,这里赋的值可以随便写,空值也是可以的。真实的字典有一个特点就是里面的词条都是不重复的,这同样也是VBA字典的一个主要特点,当你对同一个词条重复赋值的时候,后面的值自动将前面的值给覆盖,比如前面已经给“VBA”这个词条赋过值了,如果你现在再执行

d("VBA")="VB语言的一种"

那现在VBA的值就变成了“VB语言的一种”,前面的赋值被覆盖了。既然有这样的特点,那字典在去重复上就有大用处了。比如我有一大串上千条数据,现在我想把不重复的值找出来,我只要把这上千条词条都放了字典中,赋值随便,可以全都写空值,当全都赋完值后,按前面说的字典中留下的都是一些不重复的词条了。比如

d("A")=""d("B")=""d("C")=""d("A")=""

执行完上面的赋值之后字典中留下的词条就只有A、B、C,从而达到了去重复的目的。去完重复还要把不重复的值拿出来用,有办法,d.keys就表示字典中所有的词条了,不过这个词条你不能直接用,必须要将其放到一个数组中,比如放到数组arr中,arr=d.keys,那在上面的例子中arr就是包括A、B、C的三项的一维数组了。那如果你要用A、B、C的值而不是A、B、C本身,那就用arr=d.items,因为我们上面赋的全都是空值,那这里arr就是包含三个空值的一维数组了。

那么如果我们想知道字典中是不是存在某个词条怎么办呢?比如我提前建好了一个字典,然后要判断一些单元格的值,如果值在字典中执行一种操作,不在字典中执行另一种操作,这时就要判断字典中是不是包括某个词条了。好办,比如判断A在不在字典中

d.exists("A")

如果上面的函数返回的值是true,则A包含在字典中,False则不包含在字典中,是不是很简单呢?

最后一句,d.removeall删除字典中的所有词条。

原创粉丝点击