Collection

  1. Dim cl as New Collection
  2. cl.Add "123"
  3. cl.item(1)
  4. cl.Count
  5. cl.Remove(1)

Dictionary

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

Sub dictest()

    Dim d As Object    '声明字典对象,亦可通过声明变体型变量完成声明 >>> Dim d
    Set d = CreateObject("Scripting.Dictionary")    '声明字典

    ' 添加 >>> d.Add
    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
    '速度:纯数字>纯文本字符>>>文本/数值混合型

    ' 输出 >>> d(key),d.Item (key)
    Cells(1, 1) = d("a")
    'Cells(1, 1) = d.Item ("a") '与上者相同
    Cells(1, 2) = d("b")
    Cells(1, 3) = d("c")

    '判断字典keys中是否含有key
    Debug.Print d.Exists(a)        '存在,返回True
    Debug.Print d.Exists(n)        '不存在,返回Flase

    ' 字典成员个数
    Debug.Print "字典成员个数:" & d.Count

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

    ' 替换key
    d.Key("a") = "e"

    '所有key所在的数组和所有item所在的数组
    d_keys = d.Keys                '将字典keys装入数组d_keys
    Cells(3, 1) = d_keys(0)
    Cells(3, 2) = d_keys(1)
    d_items = d.Items            '将字典Item装入数组d_Items
    Cells(4, 1) = d_items(0)
    Cells(4, 2) = d_items(1)

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

End Sub