我有一段代码似乎没有完成预期的工作。 VBA数组绝对是可变的,但似乎当它们作为某些键的值存储到Dictionary中时,它们将不再可变。有任何想法吗?

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

关于excel - 在VBA字典中更改数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2404212/

10-10 18:51