IsMissing 函数
返回一个 布尔 值,该值指示是否已将可选的 Variant参数 传递给 过程。
语法
IsMissing (argname)
必需的 argname 参数包含可选 Variant 过程参数的名称。
备注
使用 IsMissing 函数可检测调用过程时是否提供了可选 Variant 参数。 如果未为指定参数传递任何值,则 IsMissing 将返回 True;否则将返回 False。
如果 IsMissing 针对某参数返回 True,则在其他代码中使用缺少参数可能导致用户定义的错误。
如果对 ParamArray 参数使用 IsMissing,则将始终返回 False。 若要检测空 ParamArray,请测试以查看数组的上限是否低于下限。
IsMissing 对简单数据类型(如 Integer 或 Double)无效,因为与 Variants 不同,它们没有针对“缺少”标志位的设置。 为此,键入的可选参数的语法允许您指定默认值。 如果在调用过程时省略参数,则该参数将具有此默认值,如以下示例所示。
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar was omitted.
Else
...
End Sub
在许多情况下,如果用户在函数调用中省略测试, If MyVar
则可以将默认值设置为等于要 MyVar
包含的值,从而完全省略测试。 这使您的代码简洁高效。
示例
此示例使用 IsMissing 函数检查是否已将可选参数传递到用户定义的过程。 请注意, Optional 参数现在可具有默认值和 Variant 之外的类型。
Dim ReturnValue
' The following statements call the user-defined function procedure.
ReturnValue = ReturnTwice() ' Returns Null.
ReturnValue = ReturnTwice(2) ' Returns 4.
' Function procedure definition.
Function ReturnTwice(Optional A)
If IsMissing(A) Then
' If argument is missing, return a Null.
ReturnTwice = Null
Else
' If argument is present, return twice the value.
ReturnTwice = A * 2
End If
End Function
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。