У меня есть часть кода, который, кажется, не делает то, что он, как ожидают, сделает. Массивы VBA изменяемы любой ценой, но кажется, что, когда они хранятся в Словарь как значения некоторых ключей, они больше не изменяемы. Какие-либо идеи?
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
Похоже, вам придется установить еще один var для обновления значения массива.
mArray = mydict.Item(1)
mArray(1) = 34
mydict.Item(1) = mArray