1

配列があり、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を使用することで、これを回避できると思いました。

各辞書が、挿入された最後の辞書への単なる参照ではないことを確認するにはどうすればよいですか?

4

1 に答える 1

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 

...ただし、配列の代わりにコレクションを使用する方が簡単だと思うかもしれません。

于 2012-09-11T16:21:38.530 に答える