Excel VBA - Add 1-dimensional array to multi-dimensional array without looping

excel, multidimensional-array, vba

Solution

I'm not sure if you would be happy with that proposal. It presents possibility of creating Array-of-Arrays which, in some situation, would work similar to Multidimensional Array. You could consider solving your problems this way.

Here is a sample code how to create and which way you could retrieve data from final 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

There is one important benefit of presented solution- each internal array can have different dimension.

Problem

I have a question regarding "creating a matrix" out of single arrays wihtout having to loop through: From a function I get back one array with data (Return_Calc, rows = n-1). I am looking for something like ``` Output(n-1, j-1) = Return_Calc(Nav_Range) ``` At the moment, I am doing this: ``` Temp = Return_Calc(Nav_range) For i = 1 To n - 1 Output(i - 1, j - 1) = Temp(i - 1) Next i ``` The current option works. I was just wondering if there is another possibility without looping. Thanks for your help!

Original source