我在VBA中有一个我想要追加的数组,它是字典的项目.它被分配如下:
dict.Add Key:=arr(i, 1), Item:=Array(arr(i, 2), arr(i, 3), arr(i, 4), arr(i, 5), arr(i, 6), arr(i, 7), arr(i, 8))
Run Code Online (Sandbox Code Playgroud)
但是我知道VBA中的数组是非常静态的,不能简单地追加.有没有办法让我解压缩数组的元素,然后创建一个新的数组(使用新项目)并将其作为字典的项目分配回去?
任何帮助表示赞赏.
小智 3
您可以使用 Preserve 进行 ReDim,但只能在字典项目的副本上进行。显然,不允许重新调整变体数组字典项。
Sub meh()
Dim i As Long, itm As Variant, dict As Object
Set dict = CreateObject("scripting.dictionary")
dict.Add Key:=("a"), Item:=Array(1, 2, 3)
For i = LBound(dict.Item("a")) To UBound(dict.Item("a"))
Debug.Print dict.Item("a")(i)
Next i
itm = dict.Item("a")
ReDim Preserve itm(LBound(itm) To UBound(itm) + 1)
itm(UBound(itm)) = "new"
dict.Item("a") = itm
For i = LBound(dict.Item("a")) To UBound(dict.Item("a"))
Debug.Print dict.Item("a")(i)
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)