解压缩数组并在VBA中将项添加到数组中

PL2*_*200 5 arrays excel vba

我在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)