2016-02-16 4 views
0

Я пытаюсь создать коллекцию и поместить внутрьVBA может я поставить коллекцию внутри scripting.dictionary

mydict = my_key:["a", "b", "c"] 

, а затем перебрать.

For Each V In mydict.keys 
     Debug.Print V 
     for z in mydict.Item(V)  
      Debug.Print z 
     next z 
    Next V 

вывод должен выглядеть my_key б гр

но я проблемы и ошибки, является тем Возможным хранить коллекцию внутри scripting.dictionary?

или просто хранит строки такие «my_key»: «a», «my_key2»: «b»?

спасибо.

ответ

1

Чтобы сохранить коллекцию в словаре можно использовать двухступенчатый процесс первого создания коллекции, а затем добавить его в словарь:

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 

код показывает, как вы можете добавить перерабатывают переменную сбора C, чтобы добавить несколько коллекций и как вы можете добавить пустые коллекции в словарь, которые будут впоследствии изменены.

Выход:

Collection for key1: 
a 
b 
c 
Collection for key2: 
d 
e 
Смежные вопросы