excel - 在 VBA 中使用函数结果作为函数参数?
问题描述
VBA 新手,
您可以将函数结果用作另一个函数的参数吗?如果没有,最好的方法是什么?以下代码应说明问题:我使用函数 f_1 生成数据并希望将数据传递给函数 f_2。
Function f_1(Arg_11, Arg_12)
For i = 1 To 100
Cells(i, 1).Value = Arg_11 * Arg_12
Next i
End Function
Function f_2(Arg_21, Arg_22)
For j = 1 To 100
Cells(j, 1).Value Arg_21 + Arg_22
Next j
End Function
Sub test()
k = 20
m = 10
g = 1
Debug.Print (f_1(k, m))
Debug.Print (f_2(g, f_1))
End Sub
解决方案
是的,但只有函数的返回值作为参数传递给另一个方法,而不是函数本身。
请参见下面的示例:
Function NumberOne() As Integer
NumberOne = 1
End Function
Function NumberTwo() As Integer
NumberTwo = 2
End Function
Function Total(ByVal one As Integer, ByVal two As Integer) As Integer
Total = one + two
End Function
Sub T()
Dim t As Integer
t = Total(NumberOne(), NumberTwo())
Debug.Print t
End Sub
返回类型并不重要,除非函数返回一个需要使用Set
关键字设置其引用的对象。
因此,以下内容也是有效的:
Sub T()
PrintThem ArrayValues()
End Sub
Sub PrintThem(ByVal values As Variant)
Dim v As Variant
For Each v In values
Debug.Print v
Next v
End Sub
Function ArrayValues() As Variant
ArrayValues = Array(1, 2, 3)
End Function