字典数组包含所有数组元素的相同字典引用

时间:2012-09-11 10:37:29

标签: vba

我有一个数组,在while循环中我将一行数据插入到字典中,然后将每个字典添加到数组中。

我的设置是这样的:

while something

    Dim MyDict as new Scripting.Dictionary
    MyDict.RemoveAll


    'Add data
    MyDict.add "something","something"


    If Count = 0 Then
        ReDim MyArray(0)
    Else
        ReDim Preserve MyArray(UBound(MyArray, 1) + 1)
    End If

    'Add the dictionary to the array of dictionaries
    Set MyArray(UBound(MyArray, 1)) = MyDict

wend

但是,在while循环结束时,整个字典数组指向同一个字典 - 最后一个字典。我想通过在while循环中声明字典并使用New,以及removeall我会避免这种....

如何确保每个字典不仅仅是对最终字典的引用?

1 个答案:

答案 0 :(得分:2)

这就是Kovags告诉你的事情:

Dim MyDict as Scripting.Dictionary

while something      

    Set MyDict = new Scripting.Dictionary     

    'Add data     
    MyDict.add "something","something"       

     If Count = 0 Then
         ReDim MyArray(0)
     Else
         ReDim Preserve MyArray(UBound(MyArray, 1) + 1)
     End If      

    'Add the dictionary to the array of dictionaries     
    Set MyArray(UBound(MyArray, 1)) = MyDict  

wend 

...虽然我认为你可能会发现使用这个数组的集合更容易。