vba 我可以将集合放入 scripting.dictionary 中吗

pel*_*los 3 collections vba dictionary

我正在尝试创建一个集合并放入其中

mydict = my_key:["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

然后迭代。

    For Each V In mydict.keys
        Debug.Print V
        for z in mydict.Item(V)       
            Debug.Print  z
        next z
    Next V
Run Code Online (Sandbox Code Playgroud)

输出应类似于 my_key a b c

但我遇到问题和错误,是否可以将集合存储在 scripting.dictionary 中?

或者只是存储诸如“my_key”:“a”,“my_key2”:“b”之类的字符串?

谢谢。

Joh*_*man 5

要将集合存储在字典中,您可以使用两步过程,首先创建集合,然后将其添加到字典中:

Sub test()
    Dim C As Collection
    Dim D As Object
    Dim v As Variant

    Set D = CreateObject("Scripting.Dictionary")

    Set C = New Collection
    C.Add "a"
    C.Add "b"
    C.Add "c"

    D.Add "key1", C

    Set C = New Collection 'Old collection safely stored in D
    D.Add "key2", C 'Now D("key2") holds a collection
    D("key2").Add "d"
    D("key2").Add "e"

    Debug.Print "Collection for key1:"
    For Each v In D("key1")
        Debug.Print v
    Next v

    Debug.Print "Collection for key2:"
    For Each v In D("key2")
        Debug.Print v
    Next v

End Sub
Run Code Online (Sandbox Code Playgroud)

该代码说明了如何添加回收集合变量C以添加多个集合,以及如何将空集合添加到字典中以供稍后修改。

输出:

Collection for key1:
a
b
c
Collection for key2:
d
e
Run Code Online (Sandbox Code Playgroud)