Returnerar ett booleskt värde som anger om ett valfritt Variant-argument har skickats till en procedur.
Syntax
IsMissing(argname)
Det obligatoriska argumentet argname innehåller namnet på ett valfritt Variant-procedurargument .
Kommentarer
Använd funktionen IsMissing för att identifiera om valfria Variant-argument har angetts vid anrop av en procedur. IsMissing returnerar True om inget värde har skickats för det angivna argumentet. Annars returneras False. Om IsMissing returnerar True för ett argument kan användning av argumentet som saknas i annan kod orsaka ett användardefinierat fel. Om IsMissing används för ett ParamArray argument returneras alltid False. Om du vill identifiera en tom ParamArray testar du för att se om matrisens övre gräns är mindre än dess nedre gräns.
Obs
IsMissing fungerar inte på enkla datatyper (till exempel heltal eller dubbel) eftersom de, till skillnad från varianter, inte har någon bestämmelse om en "saknad" flaggbit. Det gör att du kan ange ett standardvärde med syntaxen för valfria argument. Om argumentet utelämnas när proceduren anropas får argumentet det här standardvärdet, som i exemplet nedan:
Obs
I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar was omitted.
Else
...
End Sub
I många fall kan du hoppa över If MyVar testet helt genom att göra så att standardvärdet är lika med det värde du vill MyVar ha om användaren utelämnar det från funktionsanropet. Detta gör koden mer koncis och effektiv.
Exempel
I det här exemplet används funktionen IsMissing för att kontrollera om ett valfritt argument har skickats till en användardefinierad procedur. Observera att valfria argument nu kan ha andra standardvärden och -typer än varianter.
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