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

时间:2018-06-08 00:50:14

标签: 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))

但是我知道VBA中的数组是非常静态的,并且不能简单地追加。有没有办法让我解压缩数组的元素,然后创建一个新数组(使用新项目)并将其作为字典项目分配回来?

感谢任何帮助。

1 个答案:

答案 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