views:

169

answers:

1

Hi

I have a piece of code that does not seem to do what it is expected to do. VBA Arrays are mutable by all means, but it seems that when they are stored into a Dictionary as values of some keys, they are not mutable anymore. Any ideas?

Sub foo()
    Dim mydict As New Dictionary
    mydict.Add "A", Array(1, 2, 3)
    MsgBox mydict("A")(1)
    ''# The above shows 2, which is fine
    mydict("A")(1) = 34
    MsgBox mydict("A")(1)
    ''# The above also shows 2, which is not fine
End Sub
+1  A: 

It seems you'll need yet to set another var to update the array value.

mArray = mydict.Item(1)
mArray(1) = 34
mydict.Item(1) = mArray
JeremySpouken