2013-04-24 106 views
2

我有一个关于“创建矩阵”出单阵列wihtout不得不遍历一个问题:Excel的VBA - 添加一维数组,多维数组不循环

从功能我回去一个数组与数据(Return_Calc,行= 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 

当前选项的作品。我只是想知道是否有没有循环的另一种可能性。谢谢你的帮助!

回答

3

我不确定您是否会对该建议感到满意。它提出了创建Array-of-Arrays的可能性,在某些情况下,该阵列的工作原理类似于Multidimensional Array。你可以考虑以这种方式解决你的问题。

这是一个示例代码,介绍如何创建以及如何从最终数组中检索数据。

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 

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