我已经看过代码实例,其中信息传递给没有临时变量的函数,我无法弄清楚如何去做。这就是我的意思:
For i = 1 to ubound(arr)
temp = cool_function(arr(i))
next
因此,在上文中,可以将arr(i)直接传递给cool_function。但是,当我尝试时,我得到一个ByRef参数类型不匹配。我需要做的是以下内容:
For i = 1 to ubound(arr)
temp2 = arr(i)
temp = cool_function(temp2)
next
我必须将arr(i)的值赋给temp2,然后将temp2传递给函数。如何将值传递给属于数组的函数。我尝试将ByVal放在函数中但是没有用。
*************** UPDATE *************** 问题解决了。需要的是ByVal。我做了一些错别字,但我能够让它上班。
答案 0 :(得分:1)
只要元素类型与参数类型相同,它就应该工作 例如,你有一个像这样的函数:
Function cool_function(wild As String)
'~~> cool stuff here
End Function
在你的潜艇中,下面应该有效:
Sub Test()
Dim arr() As String
'~~> populate array somewhere here
For i = 1 to Ubound(arr)
temp = cool_function(arr(i))
Next
End Sub
答案 1 :(得分:0)
这对我有用:
Sub arrFunctionTest()
Dim arrV(3) As Variant
For i = 1 To 3
arrV(i) = i
arrV(i) = cool_Function(arrV, i)
Next i
For i = 1 To 3
Debug.Print arrV(i)
Next i
End Sub
Function cool_Function(arr As Variant, i) As Integer
cool_Function = arr(i) * 2
End Function