在EXCEL VBA中可以传递一个multidimensional array作为参数吗?

我有一个数组创build在一个过程中,这是最终的结果,我想利用这些结果在一个新的程序作为input到计算那里。 有没有办法将multidimensional array作为parameter passing到另一个过程? 你如何将它放入调用中,以及如何在将使用的过程中定义参数?

谢谢

像使用单维数组那样通过用括号装饰例程参数来传递;

sub a() dim x(1, 1) As long x(0, 0) = 1 x(1, 1) = 4 process x end sub sub process(arr() As long) Msgbox arr(0, 0) Msgbox arr(1, 1) end sub 

这是你之后的事情吗?

 Sub AAATest() '''''''''''''''''''''''' ' Dynamic array to hold ' the result. '''''''''''''''''''''''' Dim ReturnArr() As Long Dim Ndx1 As Long Dim Ndx2 As Long Dim NumDims As Long '''''''''''''''''''''''''' ' call the function to get ' the result array. '''''''''''''''''''''''''' ReturnArr = ReturnMulti() NumDims = NumberOfArrayDimensions(Arr:=ReturnArr) Select Case NumDims Case 0 ''''''''''''''''''' ' unallocated array ''''''''''''''''''' Case 1 '''''''''''''''''''''''''' ' single dimensional array '''''''''''''''''''''''''' For Ndx1 = LBound(ReturnArr) To UBound(ReturnArr) Debug.Print ReturnArr(Ndx1) Next Ndx1 Case 2 ''''''''''''''''''''''''''' ' two dimensional array ''''''''''''''''''''''''''' For Ndx1 = LBound(ReturnArr, 1) To UBound(ReturnArr, 1) For Ndx2 = LBound(ReturnArr, 2) To UBound(ReturnArr, 2) Debug.Print ReturnArr(Ndx1, Ndx2) Next Ndx2 Next Ndx1 Case Else '''''''''''''''''''''' ' too many dimensions '''''''''''''''''''''' End Select End Sub Function ReturnMulti() As Long() '''''''''''''''''''''''''''''''''''' ' Returns a mutli-dimensional array. '''''''''''''''''''''''''''''''''''' Dim A(1 To 2, 1 To 3) As Long ''''''''''''''''''''''''''''' ' put in some values. ''''''''''''''''''''''''''''' A(1, 1) = 100 A(1, 2) = 200 A(1, 3) = 300 A(2, 1) = 400 A(2, 2) = 500 A(2, 3) = 600 ReturnMulti = A() End Function