Rob*_*cks 68 vb6 vba arguments function optional-arguments
如何测试是否提供了可选参数? - 在VB6/VBA中
Function func (Optional ByRef arg As Variant = Nothing)
If arg Is Nothing Then <----- run-time error 424 "object required"
MsgBox "NOT SENT"
End If
End Function
Run Code Online (Sandbox Code Playgroud)
Kon*_*lph 83
用途IsMissing:
If IsMissing(arg) Then
MsgBox "Parameter arg not passed"
End If
Run Code Online (Sandbox Code Playgroud)
但是,如果我没记错的话,在为参数提供默认值时这不起作用,并且在任何情况下它都使用默认参数而非冗余.
Flo*_*ser 19
您可以使用IsMissing()函数.但是这个只适用于Variant数据类型.
Sub func(Optional s As Variant)
If IsMissing(s) Then
' ...
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
OSU*_*rba 10
如果使用字符串或数字变量,则可以检查变量的值.例如:
Function func (Optional Str as String, Optional Num as Integer)
If Str = "" Then
MsgBox "NOT SENT"
End If
If Num = 0 Then
MsgBox "NOT SENT"
End If
End Function
Run Code Online (Sandbox Code Playgroud)
这允许您使用非变量变量.
小智 7
你可以使用类似的东西:
function func(optional vNum as integer:=&HFFFF) '&HFFFF value that is NEVER set on vNum
If vNum = &HFFFF Then
MsgBox "NOT SENT"
End If
End Function
Run Code Online (Sandbox Code Playgroud)