2
최종 결과 인 하나의 프로 시저에서 배열을 만들었으므로이 프로 시저의 입력을 새로운 프로 시저에서 활용하려고합니다. 다차원 배열을 다른 프로 시저에 매개 변수로 전달하는 방법이 있습니까? 호출에 어떻게 넣고 매개 변수를 정의 할 것인가?EXCEL VBA에서 매개 변수로 다차원 배열을 전달할 수 있습니까?
감사합니다.
최종 결과 인 하나의 프로 시저에서 배열을 만들었으므로이 프로 시저의 입력을 새로운 프로 시저에서 활용하려고합니다. 다차원 배열을 다른 프로 시저에 매개 변수로 전달하는 방법이 있습니까? 호출에 어떻게 넣고 매개 변수를 정의 할 것인가?EXCEL VBA에서 매개 변수로 다차원 배열을 전달할 수 있습니까?
감사합니다.
이것은 당신이 한 일종인가요?
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
루틴 인수를 괄호로 묶어서 단일 차원 배열처럼 전달하십시오.
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