следующий код:
Dim arr As Variant, item As Variant
arr = Array(1)
arr(0) = 5
For Each item In arr
Debug.Print item
Next
отпечатки 5
; похоже, он успешно изменяет содержимое массива.
Однако, если я создаю Dictionary
и помещаю массив в один из ключей словаря:
Dim dict As New Scripting.Dictionary, item As Variant
dict("a") = Array(1)
dict("a")(0) = 5
For Each item In dict("a")
Debug.Print item
Next
массив только для чтения; редактирование игнорируется, и код печатает 1
- исходное значение.
Почему я могу изменять элементы массива, на которые ссылаются через переменную, но не элементы массива, на которые ссылаются посредством вызова Dictionary.Item; и как я могу решить эту проблему?