我想在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))
但是我知道VBA中的数组是非常静态的,并且不能简单地追加。有没有办法让我解压缩数组的元素,然后创建一个新数组(使用新项目)并将其作为字典项目分配回来?
感谢任何帮助。
答案 0 :(得分:3)
您可以使用Preserve重新编辑,但只能在字典项的副本上使用。显然,不允许使用redim'ming变量数组字典项目。
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