Pe lângă verificarea condițiilor If...Then...Else și Select Case, putem folosi și următoarele verificări:
IsNumeric (funcția pe care am folosit-o în lecția anterioară) returnează TRUE (TRUE) dacă valoarea este un număr și FALSE (FALSE) dacă - nu este un număr:
If IsNumeric(Range("A1")) = True Then 'DACĂ VALOAREA ESTE NUMĂR...
Următorul cod produce același efect ca și cel anterior (nu trebuie să includem = True deoarece constructul în sine este o verificare a condiției):
If IsNumeric(Range("A1")) = True Then 'DACĂ VALOAREA ESTE NUMĂR...
Dacă vrem să verificăm dacă o valoare nu este un număr, o putem face în două moduri:
If IsNumeric(Range("A1")) = False Then 'DACĂ VALOAREA NU ESTE UN NUMĂR...
If Not IsNumeric(Range("A1")) Then 'DACĂ VALOAREA NU ESTE UN NUMĂR...
Să ne uităm la câteva funcții similare cu IsNumeric:
If IsDate(Range("A1")) Then 'DACĂ VALOAREA ESTE DATA...
If IsEmpty(Range("A1")) Then 'DACĂ GOL...
If var_object Is Nothing Then 'DACĂ OBIECTUL NU ESTE DEFINIT...
Pentru a executa comenzi bazate pe tipul unei variabile, va trebui să folosim funcția VarType.
Lista de tipuri de variabile va apărea imediat ce introducem semnul „=":
If VarType(my_variable) = vbInteger Then 'DACĂ my_variable este de tip variabilă Integer...
Valorile constantelor:
Constant | Valoare |
---|---|
vbEmpty | 0 |
vbNull | 1 |
vbInteger | 2 |
vbLong | 3 |
vbSingle | 4 |
vbDouble | 5 |
vbCurrency | 6 |
vbDate | 7 |
vbString | 8 |
vbObject | 9 |
vbError | 10 |
If VarType(my_variable) = vbInteger Then 'DACĂ my_variable este de tip variabilă Integer... 'Este identic cu: If VarType(my_variable) = 2 Then 'DACĂ my_variable este de tip variabilă Integer...
Puțin mai devreme am folosit următorul fragment de cod:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> ADEVĂRAT (TRUE)
În acest caz cele două benzi sunt la fel, dar dacă vrem să verificăm dacă variabila conține valoarea „12345”; fără a lua în considerare alte caractere, atunci ar trebui să folosim comanda Like și operatorul * (asterisc) înainte și după valoarea pe care o căutăm.
Operatorul * (asterisc) este descifrat ca: orice caracter sau set de caractere:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> ADEVĂRAT (TRUE)
Operatorul # (hash) este decodat ca: orice caracter numeric de la 0 la 9:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> ADEVĂRAT (TRUE)
Operator? (semnul de întrebare) este descifrat ca: orice caracter:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> ADEVĂRAT (TRUE)
De asemenea, putem folosi anumite caractere sau un set de caractere în același mod:
my_variable = "Example 12345" If my_variable Like "[DEF]xample 1234[4-7]" Then '=> ADEVĂRAT (TRUE)
Operator! (punct de exclamare) adăugat după [ va însemna: orice caracter care nu este cuprins între paranteze pătrate:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> ADEVĂRAT (TRUE)