Freigeben über


IsMissing-Funktion

Gibt einen booleschen Wert zurück, der angibt, ob ein optionales Variant-Argument an eine Prozedur übergeben wurde.

Syntax

IsMissing(argname)

Das erforderliche argname-Argument enthält den Namen eines optionalen Variant-Prozedurarguments.

Hinweise

Verwenden Sie die IsMissing-Funktion , um zu ermitteln, ob beim Aufrufen einer Prozedur optionale Variant-Argumente bereitgestellt wurden. IsMissing gibt True zurück, wenn für das angegebene Argument kein Wert übergeben wurde. Andernfalls wird False zurückgegeben.

Wenn IsMissingtrue für ein Argument zurückgibt, kann die Verwendung des fehlenden Arguments in einem anderen Code zu einem benutzerdefinierten Fehler führen.

Wenn IsMissing für ein ParamArray-Argument verwendet wird, wird immer False zurückgegeben. Um ein leeres ParamArray zu erkennen, testen Sie, ob die obere Grenze des Arrays kleiner als die untere Grenze ist.

IsMissing funktioniert nicht bei einfachen Datentypen (z. B. Integer oder Double), da sie im Gegensatz zu Varianten nicht über eine Bereitstellung für ein "fehlendes" Flagbit verfügen. Daher ermöglicht Ihnen die Syntax für eingegebene optionale Argumente die Angabe eines Standardwerts. Wenn das Argument beim Aufrufen der Prozedur ausgelassen wird, weist das Argument diesen Standardwert auf, wie im folgenden Beispiel gezeigt.

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

In vielen Fällen können Sie den If MyVar Test vollständig weglassen, indem Sie den Standardwert auf den Wert festlegen, den Sie enthalten möchten MyVar , wenn der Benutzer ihn aus dem Funktionsaufruf auslässt. Dadurch wird der Code präziser und effizienter.

Beispiel

In diesem Beispiel wird mithilfe der IsMissing -Funktion überprüft, ob ein optionales Argument an eine benutzerdefinierte Prozedur übergeben wurde. Beachten Sie, dass Argumente vom Typ Optional jetzt Standardwerte und andere Typen als Variant aufweisen können.

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

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.