IsMissing 函数

返回一个 布尔 值,该值指示是否已将可选的 Variant参数 传递给 过程

语法

IsMissing (argname)

必需的 argname 参数包含可选 Variant 过程参数的名称。

备注

使用 IsMissing 函数可检测调用过程时是否提供了可选 Variant 参数。 如果未为指定参数传递任何值,则 IsMissing 将返回 True;否则将返回 False

如果 IsMissing 针对某参数返回 True,则在其他代码中使用缺少参数可能导致用户定义的错误。

如果对 ParamArray 参数使用 IsMissing,则将始终返回 False。 若要检测空 ParamArray,请测试以查看数组的上限是否低于下限。

IsMissing 对简单数据类型(如 IntegerDouble)无效,因为与 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。