Returnerer en boolesk værdi, der angiver, om et valgfrit argument Variant er blevet overført til en procedure.
Syntaks
IsMissing(argname)
Det påkrævede argname-argument indeholder navnet på et valgfrit Variant-procedureargument .
Bemærkninger
Brug funktionen IsMissing til at finde ud af, om der er angivet valgfrie Variant-argumenter ved kald af en procedure. IsMissing returnerer True , hvis der ikke er overført nogen værdi for det angivne argument. Ellers returneres Falsk. Hvis IsMissing returnerer Sand for et argument, kan brug af det manglende argument i anden kode medføre en brugerdefineret fejl. Hvis IsMissing bruges på et ParamArray-argument , returneres altid Falsk. Hvis du vil registrere en tom ParamArray, skal du teste, om matrixens øvre grænse er mindre end dens nedre grænse.
Bemærk
IsMissing virker ikke på simple datatyper (f.eks. Heltal eller Dobbelt), fordi de, i modsætning til Varianter, ikke har en bestemmelse for en "manglende" flagbit. Derfor giver syntaksen for indtastede valgfrie argumenter dig mulighed for at angive en standardværdi. Hvis argumentet udelades, når proceduren kaldes, har argumentet denne standardværdi som i eksemplet nedenfor:
Bemærk
Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar was omitted.
Else
...
End Sub
I mange tilfælde kan du udelade testen If MyVar helt ved at gøre standardværdien lig med den værdi, du vil MyVar indeholde, hvis brugeren udelader den i funktionskaldet. Dette gør din kode mere præcis og effektiv.
Eksempel
I dette eksempel bruges funktionen IsMissing til at kontrollere, om et valgfrit argument er blevet overført til en brugerdefineret procedure. Bemærk, at valgfrie argumenter nu kan have andre standardværdier og -typer end 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