2012-12-18 3 views

답변

0

이것은 당신이 한 일종인가요?

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 
3

루틴 인수를 괄호로 묶어서 단일 차원 배열처럼 전달하십시오.

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 
관련 문제