📅  最后修改于: 2023-12-03 15:35:34.643000             🧑  作者: Mango
在VBA中,我们可以通过定义可选参数来增加函数或子程序的灵活性。可选参数使得调用函数或子程序时可以有一些参数是可传可不传的,这样我们就能够在不同的情况下使用同一个函数或子程序了。
在定义函数或子程序时,可以在参数列表中指定一个参数为可选参数。定义可选参数的语法是在参数名后面加一个问号(?)。
Function MyFunction(arg1 As String, Optional arg2 As Integer = 0) As Integer
'函数体
End Function
上面的代码定义了一个名为MyFunction的函数。它有两个参数,其中第二个参数arg2是可选参数。函数体可以在其中使用arg2,如果调用函数时未传递第二个参数,则arg2的值默认为0。
当调用带有可选参数的函数或子程序时,我们可以选择性地传递第二个参数。如果不传递第二个参数,则函数或子程序使用默认值。
Sub TestMyFunction()
Dim result1 As Integer
result1 = MyFunction("Hello")
Dim result2 As Integer
result2 = MyFunction("Hello", 5)
End Sub
上面的代码分别调用了MyFunction函数两次。第一次没有传递第二个参数,使用了默认值0;第二次传递了第二个参数5。
如果函数或子程序有多个可选参数,我们可以使用“:=”语法来指定每个可选参数的值。
Function MyFunction(arg1 As String, Optional arg2 As Integer = 0, Optional arg3 As Boolean = False) As Integer
'函数体
End Function
Sub TestMyFunction()
Dim result1 As Integer
result1 = MyFunction("Hello")
Dim result2 As Integer
result2 = MyFunction("Hello", arg2:=5)
Dim result3 As Integer
result3 = MyFunction("Hello", arg3:=True)
Dim result4 As Integer
result4 = MyFunction("Hello", arg2:=5, arg3:=True)
End Sub
使用可选参数可以增加函数或子程序的灵活性,使得我们可以在不同的情况下使用同一个函数或子程序。当函数或子程序有多个可选参数时,使用“:=”语法来指定每个可选参数的值。