可选参数

某些过程具有可选参数。可选参数总是在必需参数之后,但可以在没有它们的情况下调用该过程。

例如,如果函数 ProcedureName 有两个必需参数(argument1argument2)和一个可选参数 optArgument3,它至少可以被调用四种方式:

' Without optional argument
result = ProcedureName("A", "B")

' With optional argument
result = ProcedureName("A", "B", "C")

' Using named arguments (allows a different order)
result = ProcedureName(optArgument3:="C", argument1:="A", argument2:="B")

' Mixing named and unnamed arguments 
result = ProcedureName("A", "B", optArgument3:="C")

这里调用的函数头的结构如下所示:

Function ProcedureName(argument1 As String, argument2 As String, Optional optArgument3 As String) As String

Optional 关键字表示可以省略该参数。如前所述 - 标头中引入的任何可选参数必须出现在任何必需参数之后的末尾。

在未将值传递给函数的情况下,你还可以为参数提供默认值:

Function ProcedureName(argument1 As String, argument2 As String, Optional optArgument3 As String = "C") As String

在此函数中,如果未提供 c 的参数,则其值将默认为 C。如果值提供,那么这将覆盖默认值。