您的位置:首页 > 编程语言 > VB

VBA字典

2020-02-18 06:48 351 查看

一、定义字典
Set d = CreateObject(“Scripting.Dictionary”)

二、呼之即来,挥之即去

d("张三“)=1 '相当于给字典赋值,张三过来(没有就生成)拿个1站一边去
d("李四”)=2 '相当于给字典赋值,李四过来(没有就生成)拿个2站一边去
d("李四”)=3 '相当于改变值,字典中已经有李四了,李四跑过来,丢下2换个3站一边去
注:这时字典中有两个人的存在,张三=1 和 李四=3,相当于实现了去重复的功能

s=d(“张三”) 's=1 即叫了声张三,张三就告诉你他拿的是1
s=d(“李四”) 's=3 即叫了声李四,李四就告诉你他拿的是3
s=d(“麻子”) 's="" 没有找到麻子怎么办呢,字典里就自动生成一个麻子d(“麻子”) =“”,告诉你他手上是空的
注:这时字典中有三个人的存在,张三=1 ; 李四=3;麻子=“”
三、将字典里的东西变成数组
arr= d.Keys '把名字的集合按先来后到的原则放到一维数组里 arr(0)=“张三” ; arr(1)=“李四” ; arr(2)=“麻子”
arr1=d.Items '把名字对应的值的集合按先来后到的原则放到一维数组里 arr1(0)=“1” ; arr1(1)=“3” ; arr1(2)=“”

四、查找字典中有没有这个人
s=d.Exists(“张三”) 's=True 有的
s=d.Exists(“彭希遴”) 's=False 没有
五、清空数组
d.RemoveAll

Sub dictest()

’ 字典简介
’ 字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成
’ VBA字典有6个方法Add , Keys, Items, Exists, Remove, RemoveAll
’ VBA字典有4个属性Count , Key, Item, CompareMode

’ 创建字典"d"
Dim d As Object
Set d = CreateObject(“Scripting.Dictionary”)

’ 添加
d.Add “a”, “example1”
d.Add “b”, 9
'd.Add “b”, 7 'add重复key会报错
d(“b”) = 7 '这样会直接覆盖,不会报错
'd.Item(“b”) = 7 '与上者相同
d(“c”) = “example2”

'通常使用Sting文本字符串作为字典key关键词,也可以使用数字、数值作为key
'速度:纯数字>纯文本字符>>>文本/数值混合型

’ 输出
Cells(1, 1) = d(“a”)
'Cells(1, 1) = d.Item(“a”) '与上者相同
Cells(1, 2) = d(“b”)
Cells(1, 3) = d(“c”)

’ 字典成员个数
Cells(1, 4) = d.Count

'移除
d.Remove (“b”)
'd.RemoveAll '移除所有

’ key是否存在
Cells(2, 1) = d.Exists(“b”)
d.Add “b”, 7
Cells(2, 2) = d.Exists(“b”)

’ 替换key
d.Key(“a”) = “e”

'所有key所在的数组和所有item所在的数组
d_keys = d.Keys
Cells(3, 1) = d_keys(0)
Cells(3, 2) = d_keys(1)
d_items = d.Items
Cells(4, 1) = d_items(0)
Cells(4, 2) = d_items(1)

'更改字符串关键字比较时所使用的比较模式
'd.CompareMode = 0(二进制)/1(文本)/2(数据库)

End Sub

  • 点赞
  • 收藏
  • 分享
  • 文章举报
MTMT65 发布了0 篇原创文章 · 获赞 0 · 访问量 1272 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: