VB – 如何testing是否提供可选参数?
如何testing是否提供可选参数? – 在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
使用IsMissing
:
If IsMissing(arg) Then MsgBox "Parameter arg not passed" End If
但是,如果我没有记错,在为参数给出默认值时不起作用,并且在任何情况下都会使用默认参数而非冗余。
您可以使用IsMissing()函数。 但是这只适用于Variant数据types。
如果IsMissing(arg)那么…
如果使用string或数字variables,则可以检查variables的值。 例如:
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
这使您可以使用非variablesvariables。
你可以使用像这样的东西:
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
有了一个变种,我会使用NZ函数:
Function func (Optional ByRef arg As Variant = Nothing) If nz ( arg, 0 ) = 0 Then MsgBox "NOT SENT" End If End Function
它也可以和其他的数据types一起使用,只要记住零计数既不是零也不是零长度,所以nz(0,"")
仍然返回0。