【问题标题】:Excel VBA - Add 1-dimensional array to multi-dimensional array without loopingExcel VBA - 将一维数组添加到多维数组而不循环
【发布时间】:2013-04-24 10:48:00
【问题描述】:

我有一个关于从单个数组中“创建矩阵”而不必循环的问题:

从一个函数中,我得到一个包含数据的数组(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 

当前选项有效。我只是想知道是否还有另一种可能性而无需循环。感谢您的帮助!

【问题讨论】:

    标签: excel multidimensional-array vba


    【解决方案1】:

    我不确定您是否会对这个提议感到满意。它提供了创建 Array-of-Arrays 的可能性,在某些情况下,它的工作方式类似于多维数组。你可以考虑用这种方式解决你的问题。

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

    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
    

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

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 2019-07-23
      • 2017-12-22
      • 1970-01-01
      相关资源
      最近更新 更多