现在想用vba写一个函数,返回值为一个维度为a*b 的数组,函数的参数就是代表维度的a和b,比如:
Funtion ub(a,b)
for i=1 to a
for j=1 to b
ub(i,j)=i*j
next j
next i
End funtion
问题是主函数中我应该如何调用这样的数组呢?比如a=3,b=4,想调用数组中的ub(1,2)
sub main
a=3
b=4
redim ub(1 to a, 1 to b)
msgbox ub(1,2)
end sub
这样做是错误的,问题是应该如何正确的声明和调用返回数组中的元素呢?
vbaè¿åå¨ææ°ç»ä¸çå
ç´ ä½ç½®ï¼åèå®ä¾å¦ä¸ï¼
Sub Macro1()
Dim arr, i As Long
arr = [{1, 2, 3}]
On Error Resume Next
i = WorksheetFunction.Match(2, arr)
If Err.Number = 0 Then
MsgBox "å ç´ 2å¨æ°ç»ä¸çä½ç½®æ¯:" & i
Else
MsgBox "æ°ç»ä¸ä¸åå¨å ç´ 2"
End If
End Sub
Sub Macro1()
Dim arr, i As Long
arr = [{1, 2, 3}]
On Error Resume Next
i = WorksheetFunction.Match(2, arr)
If Err.Number = 0 Then
MsgBox "å ç´ 2å¨æ°ç»ä¸çä½ç½®æ¯:" & i
Else
MsgBox "æ°ç»ä¸ä¸åå¨å ç´ 2"
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-10-22
Sub Main()
a = 3
b = 4
ReDim Ar(1 To a, 1 To b)
Call ub(Ar)
MsgBox Ar(1, 2)
End Sub
Function ub(ByRef Arr)
For i = LBound(Arr) To UBound(Arr)
For j = LBound(Arr, 2) To UBound(Arr, 2)
Arr(i, j) = i * j
Next j
Next i
End Function本回答被提问者采纳
a = 3
b = 4
ReDim Ar(1 To a, 1 To b)
Call ub(Ar)
MsgBox Ar(1, 2)
End Sub
Function ub(ByRef Arr)
For i = LBound(Arr) To UBound(Arr)
For j = LBound(Arr, 2) To UBound(Arr, 2)
Arr(i, j) = i * j
Next j
Next i
End Function本回答被提问者采纳