VBA将一个数组添加到另一个数组

我是VBA的超级新手(并且是堆栈溢出的内容,这是我的第一篇文章),我正在尝试简化代码,但似乎无法找到在1行中将1D数组添加到3D数组的方法。 我有3维数组

Dim myArray(50, 20, 3) As Variant

目前,我必须这样做:

myArray(0, 0, 0) = 0: myArray(0, 0, 1) = 1: myArray(0, 0, 2) = 2

您可以看到我实际上在1行中有3条语句,而且我不得不键入3次数组名称。 我想做的是这样的:

myArray(0, 0) = {0,1,2}

最终结果应该相同。

评论
此生不坏
此生不坏

You could use a For...Next loop like so:

Sub test()
Dim myArray(50, 30, 3)
Dim ArrayElement As Long

For ArrayElement = 0 To (UBound(myArray, 3))
    myArray(0, 0, ArrayElement) = ArrayElement
Next ArrayElement

End Sub

要考虑其他维度,请嵌套更多循环,例如;


For 1DElement = 0 To Ubound(myArray, 1)
    For 2DElement = 0 To Ubound(MyArray, 2)
        For 3DElement= 0 To (UBound(myArray, 3))
            myArray(0, 0, 3DElement) = 3DElement
        Next 3DElement
    'Add code here to change 2D elements if need be
    Next 2DElement
    ''Add code here to change 1D elements if need be
Next 1DElement

点赞
评论