Kontynuując temat związany z funkcjami informacyjnymi dziś prześledzę wykorzystanie dwóch kolejnych:
IsEmpty,
IsNull.
1. Funkcja
IsEmpty zwróci wartość
True gdy zmienna testowana przez funkcję nie została zainicjowana, a więc nie przypisano jej żadnej wartości. Oto przykład wraz ze zwracanymi wynikami:
2 | Debug.Print IsEmpty(ZmiennaA) >> True |
5 | Debug.Print IsEmpty(ZmiennaA) >> False |
Co jednak ważne- choć pomoc VBA wspomina o możliwości testowania zmiennych z wykorzystaniem funkcji
IsEmpty możemy także zapytać np. o zawartość komórki:
1 | Debug.Print IsEmpty(Range( "A1" )) |
jeżeli komórka A1 będzie pusta w wyniku otrzymamy
True, jeżeli jednak w komórce A1 będzie dowolna wartość (tekst, liczba, data, itp). otrzymamy w wyniku wartość
False.
I jeszcze ważna ciekawostka. Poniższe zapytanie o pusty ciąg tekstu zwróci wartość
False:
1 | Debug.Print IsEmpty( "" ) >> False |
2. Funkcja
IsNull nie jest pytaniem czy dana zmienna przechowuje 0 lecz jest pytaniem, czy dana zmienna zwraca wynik
Null. Każde z 3 poniższych zapytań zwróci więc wartość
False gdyż w żadnym wypadku nie mamy do czynienia z wartością
Null:
2 | Debug.Print IsNull(ZmiennaA) >> False |
4 | Debug.Print IsNull(ZmiennaA) >> False |
6 | Debug.Print IsNull(ZmiennaA) >> False |
I jeszcze test funkcji
IsNull dla obszaru typu
Range:
1 | Debug.Print IsEmpty(Range( "A1" )) >> False |
Niezależnie czy komórka zawiera jakąś wartość czy jest pusta powyższe zapytanie zwróci
False.
Kiedy więc funkcja
IsEmpty zwróci wartość
True? W sytuacji następującego zapytania:
3 | Debug.Print IsNull(ZmiennaB) >> True |
Brak komentarzy:
Prześlij komentarz