Returnează o valoare booleană care indică dacă un argument opțional variant a fost transmis unei proceduri.
Sintaxă
IsMissing(numearg)
Argumentul argument obligatoriu conține numele unui argument opțional de procedură variant .
Observații
Utilizați funcția IsMissing pentru a detecta dacă au fost furnizate sau nu argumente variant opționale la apelarea unei proceduri. IsMissing returnează True dacă nu a fost transmisă nicio valoare pentru argumentul specificat; în caz contrar, returnează False. Dacă IsMissing returnează True pentru un argument, utilizarea argumentului lipsă în alt cod poate provoca o eroare definită de utilizator. Dacă se utilizează IsMissing într-un argument ParamArray , se returnează întotdeauna False. Pentru a detecta un ParamArray gol, testați pentru a vedea dacă limita superioară a matricei este mai mică decât limita inferioară.
Notă
IsMissing nu funcționează pe tipurile de date simple (cum ar fi Integer sau Double) deoarece, spre deosebire de variante, acestea nu au o prevedere pentru un bit de semnalizator "lipsă". Din acest motiv, sintaxa pentru argumentele opționale tastate vă permite să specificați o valoare implicită. Dacă argumentul este omis atunci când se apelează procedura, argumentul va avea această valoare implicită, ca în exemplul de mai jos:
Notă
Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar was omitted.
Else
...
End Sub
În multe cazuri, puteți omite testul If MyVar în întregime, făcând valoarea implicită egală cu valoarea pe care doriți să MyVar o conțineți, dacă utilizatorul o omite din apelul funcției. Acest lucru vă face codul mai concis și mai eficient.
Exemplu
Acest exemplu utilizează funcția IsMissing pentru a verifica dacă un argument opțional a fost transmis unei proceduri definite de utilizator. Rețineți că argumentele opționale pot avea acum valori implicite și tipuri diferite de 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