2016-04-25 20 views
1

你好,友善和好人。這個想法如下 - 我有一本字典詞典,我想用一個循環來設置它,而不是單獨設置。任何想法如何做到這一點?VBA - 設置字典並將其轉換爲字符串,例如EVAL

到目前爲止,我有這樣的事情:

Public Sub mains() 

    Dim my_dict  As Object 
    Dim d1   As Object 
    Dim d2   As Object 
    Dim d3   As Object 
    Dim d4   As Object 
    Dim d5   As Object 
    Dim d6   As Object 
    Dim d7   As Object 
    Dim d8   As Object 
    Dim i   As Long 

    Set my_dict = CreateObject("Scripting.dictionary") 

    For i = 1 To 8 
     set cstr(d & i) = createobject("scripting.dictionary") 
    Next i 

End Sub 

它是可行的VBA? set cstr(「d」& i)當然會給出錯誤,但我想要類似的東西,而不是逐個設置字典。

回答

2

您不能以編程方式構造變量名稱。改用數組。

Dim dicts(8) As Variant 
For i = 0 To 7 
    Set dicts(i) = New Dictionary 
Next i 

或者,因爲你的目標是建立字典的一個字典,你可以直接做到這一點:

Dim dict as new Dictionary, tmp as Dictionary 
For i = 0 to 7 
    Set tmp = new Dictionary 
    dict.add "d" & i + 1, tmp 
next i 
+0

呀,好像這就是我要使用。但我希望有一個cstr()替代或類似的東西。 – Vityata