gpt4 book ai didi

arrays - 如何在 VBA 中重新保存锯齿状数组(数组中的数组)?

转载 作者:行者123 更新时间:2023-12-04 21:51:01 24 4
gpt4 key购买 nike

我在 EXCEL VBA 中有一个数组数组(不是二维数组),我需要向内部数组添加元素。
例如。:

Option Explicit

Sub ArrayofArrays()

Dim OuterArray() As Variant
ReDim OuterArray(0 To 0)

Dim InnerArray() As Variant
ReDim InnerArray(0 To 0)

InnerArray(0) = "Foo"
OuterArray(0) = InnerArray

ReDim Preserve OuterArray(LBound(OuterArray) To UBound(OuterArray) + 1)
End Sub

我现在可以通过以下方式访问内部元素:
debug.print OuterArray(0)(0)

打印我“Foo”

但是如何在 OuterArray 中扩展数组呢?

最后一行只向 OuterArray 添加了一个空元素:
ReDim Preserve OuterArray(LBound(OuterArray) To UBound(OuterArray) + 1)

但我想要的是这样的:

¦___OuterArray(0)

¦_____________OuterArray(0)(0): "Foo"

¦_____________OuterArray(0)(1): "条形图"

谢谢!

最佳答案

VBA不允许你直接ReDim然而,内部数组,你可以很容易地通过使用中间辅助数组来实现它(在这个例子中名为 tmp )

Option Explicit
Sub ArrayofArrays()
Dim tmp As Variant
Dim OuterArray() As Variant
ReDim OuterArray(0 To 0)

Dim InnerArray() As Variant
ReDim InnerArray(0 To 0)

InnerArray(0) = "Foo"
OuterArray(0) = InnerArray

tmp = OuterArray(0)
ReDim Preserve tmp(LBound(tmp) To UBound(tmp) + 1)
OuterArray(0) = tmp
Erase tmp

OuterArray(0)(1) = "Bar"
Debug.Print OuterArray(0)(1)
End Sub

关于arrays - 如何在 VBA 中重新保存锯齿状数组(数组中的数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54253970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com