Oprócz sprawdzenia warunków If...Then...Else i Select Case możemy także skorzystać z następujących kontroli:
IsNumeric (funkcja, której używaliśmy w poprzedniej lekcji) zwraca PRAWDĘ (TRUE), jeśli wartość jest liczbą, i FAŁSZ (FALSE), jeśli - nie jest liczbą:
If IsNumeric(Range("A1")) = True Then 'JEŚLI WARTOŚĆ JEST LICZBĄ...
Poniższy kod daje taki sam efekt jak poprzedni (nie musimy dołączać = True, ponieważ sama konstrukcja jest sprawdzaniem warunku):
If IsNumeric(Range("A1")) = True Then 'JEŚLI WARTOŚĆ JEST LICZBĄ...
Jeżeli chcemy sprawdzić czy dana wartość nie jest liczbą, możemy to zrobić na dwa sposoby:
If IsNumeric(Range("A1")) = False Then 'JEŚLI WARTOŚĆ NIE JEST LICZBĄ...
If Not IsNumeric(Range("A1")) Then 'JEŚLI WARTOŚĆ NIE JEST LICZBĄ...
Przyjrzyjmy się kilku innym funkcjom podobnym do IsNumeric:
If IsDate(Range("A1")) Then 'JEŚLI WARTOŚĆ JEST DATĄ...
If IsEmpty(Range("A1")) Then 'JEŚLI PUSTY...
If var_object Is Nothing Then 'JEŚLI PRZEDMIOT NIE JEST ZDEFINIOWANY...
Aby wykonać polecenia w oparciu o typ zmiennej, będziemy musieli skorzystać z funkcji VarType.
Lista typów zmiennych pojawi się po wpisaniu znaku „=”:
If VarType(my_variable) = vbInteger Then 'JEŚLI my_variable jest zmienną typu Integer ...
Wartości stałych:
Stały | Wartość |
---|---|
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 'JEŚLI my_variable jest zmienną typu Integer ... 'Jest identyczny z: If VarType(my_variable) = 2 Then 'JEŚLI my_variable jest zmienną typu Integer ...
Nieco wcześniej użyliśmy następującego fragmentu kodu:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> PRAWDA (TRUE)
W tym przypadku obie taśmy są takie same, ale jeśli chcemy sprawdzić, czy zmienna zawiera wartość „12345”; nie biorąc pod uwagę innych znaków, wówczas powinniśmy użyć polecenia Like, a operatora * (gwiazdka) przed i po wartości, której szukamy.
Operator * (gwiazdka) jest odszyfrowywany jako: dowolny znak lub zestaw znaków:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> PRAWDA (TRUE)
Operator # (hash) jest dekodowany jako: dowolny pojedynczy znak numeryczny od 0 do 9:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> PRAWDA (TRUE)
Operator? (znak zapytania) jest odczytywany jako: dowolny pojedynczy znak:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> PRAWDA (TRUE)
W ten sam sposób możemy również użyć określonych znaków lub zestawu znaków:
my_variable = "Example 12345" If my_variable Like "[DEF]xample 1234[4-7]" Then '=> PRAWDA (TRUE)
Operator! (wykrzyknik) dodany po [ będzie oznaczać: dowolny znak nieujęty w nawiasy kwadratowe:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> PRAWDA (TRUE)