Excel VBA - 将1维数组添加到多维数组而不进行循环

时间:2013-04-24 10:48:01

标签: excel-vba multidimensional-array vba excel

我有一个关于“创建矩阵”的问题,不需要循环遍历单个数组:

从函数中我得到一个带数据的数组(Return_Calc,rows = n-1)。我正在寻找像

这样的东西
    Output(n-1, j-1) = Return_Calc(Nav_Range)

目前,我这样做:

    Temp = Return_Calc(Nav_range)

    For i = 1 To n - 1

        Output(i - 1, j - 1) = Temp(i - 1)

    Next i 

当前选项有效。我只是想知道是否还有其他可能没有循环。谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

我不确定你是否对这个提议感到满意。它提供了创建阵列数组的可能性,在某些情况下,它可以像多维数组一样工作。您可以考虑以这种方式解决您的问题。

以下是如何创建示例代码以及从最终数组中检索数据的方法。

Sub Array_Workaround()

    Dim oneDimArrA, oneDimArrB
        oneDimArrA = Array(1, 2, 3, 4)
        oneDimArrB = Array("A", "B", "C", "D")
    Dim multiDimArr

    'creating multidemmnsional array
    multiDimArr = Array(oneDimArrA, oneDimArrB)

    'get element- different to standard syntax
    Debug.Print multiDimArr(0)(0)   '--> 1
    Debug.Print multiDimArr(0)(1)   '--> 2
    Debug.Print multiDimArr(1)(1)   '--> B

End Sub

所提出的解决方案有一个重要的好处 - 每个内部阵列可以具有不同的维度。