IsMissing 函数

应用对象
Microsoft 365 专属 Access Access 2021 Access 2019 Access 2016

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

语法

IsMissing (argname)

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

备注

使用 IsMissing 函数检测在调用过程中是否提供了可选的 Variant 参数。 如果未为指定参数传递任何值,则 IsMissing 返回 True;否则,返回 False。 如果 IsMissing 为参数返回 True ,则在其他代码中使用缺少的参数可能会导致用户定义的错误。 如果对 ParamArray 参数使用 IsMissing,则始终返回 False。 若要检测空 ParamArray,请测试以查看数组的上限是否小于其下限。

注意

IsMissing 不适用于简单的数据类型 (,例如 IntegerDouble) ,因为与 Variants 不同,它们没有针对“缺失”标志位的预配。 因此,类型化可选参数的语法允许指定默认值。 如果在调用过程时省略参数,则该参数将具有此默认值,如以下示例所示:

注意

下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。

Sub MySub(Optional MyVar As String = "specialvalue")
    If MyVar = "specialvalue" Then
        ' MyVar was omitted.
    Else
    ...
End Sub

在许多情况下,如果用户在函数调用中省略测试, If MyVar 则可以将默认值设置为等于要 MyVar 包含的值,从而完全省略测试。 这使代码更加简洁高效。

示例

此示例使用 IsMissing 函数检查是否已将可选参数传递给用户定义的过程。 请注意, 可选 参数现在可具有除 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