W tym artykule zademonstrujemy użycie funkcji VarType w VBA.
VarType oznacza typ zmiennej. Możemy podać nazwę zmiennej do funkcji VarType, która zwróci liczbę całkowitą, która przedstawia typ danych przechowywanych w tej zmiennej zgodnie z listą stałych VBA.
Użycie zmiennej Variant do znalezienia VarType
Możemy zadeklarować zmienną jako zmienną Variant. Umożliwi nam to przechowywanie w nim dowolnego typu dozwolonych danych. Następnie możemy wypełnić tę zmienną i użyć funkcji VarType, aby zobaczyć, jaki typ danych znajduje się w zmiennej.
Na przykład:
12345 | PodTypZmiennejTestowej()Przyciemnij moją zmienną jako wariantMojaZmienna = "Witaj świecie"MsgBox "Typ zmiennej to " & VarType(MyVariable)Napis końcowy |
Spowoduje to zwrócenie następującego okna komunikatu:
Dlatego zwracana jest wartość 8. Jest to stała Excel, która definiuje typ danych przechowywanych w zmiennej.
Ta stała wartość odpowiada poniższej tabeli:
Stały | Wartość | Opis |
---|---|---|
vbPusty | 0 | Pusty (niezainicjowany) |
vbNull | 1 | Null (brak prawidłowych danych) |
vbInteger | 2 | Liczba całkowita |
vbLong | 3 | Długa liczba całkowita |
vbSingle | 4 | Liczba zmiennoprzecinkowa o pojedynczej precyzji |
vbDouble | 5 | Liczba zmiennoprzecinkowa podwójnej precyzji |
vbCurrency | 6 | Wartość waluty |
vbData | 7 | Wartość daty |
vbString | 8 | Strunowy |
vbObject | 9 | Obiekt |
vbError | 10 | Wartość błędu |
vbBoolean | 11 | Wartość logiczna |
vbWariant | 12 | Wariant (używane tylko z tablicami wariantów) |
vbDataObject | 13 | Obiekt dostępu do danych |
vbDecimal | 14 | Wartość dziesiętna |
vbByte | 17 | Wartość w bajtach |
vbLongLong | 20 | LongLong liczba całkowita (ważne tylko na platformach 64-bitowych) |
vbUserDefinedType | 36 | Warianty zawierające typy zdefiniowane przez użytkownika |
vbArray | 8192 | Tablica (zawsze dodawana do innej stałej po zwróceniu przez tę funkcję) |
Możemy spróbować innego przykładu:
12345 | PodTestTypZmiennej()Przyciemnij moją zmienną jako wariantMoja zmienna = 32760MsgBox "Typ zmiennej to " & VarType(MyVariable)Napis końcowy |
Tym razem okno komunikatu zwróci 2, ponieważ typ danych przechowywanych w zmiennej to Integer.
Jeśli jednak zmienimy wartość na 32780, to zwróconą wartością będzie 3 - Long Integer, ponieważ typ danych Integer ma maksymalną wartość 32767; po czym jest to liczba całkowita długa.
Gdybyśmy mieli jeszcze raz zmienić kod:
12345 | PodTestTypZmiennej()Przyciemnij moją zmienną jako wariantMoja zmienna = 32760,52MsgBox "Typ zmiennej to " & VarType(MyVariable)Napis końcowy |
Otrzymalibyśmy teraz zwróconą wartość 5 - typ danych to Double ze względu na miejsca dziesiętne.
Gdybyśmy umieścili wartość w zmiennej w cudzysłowie, to po raz kolejny zostanie zwrócona liczba 8, ponieważ każda wartość zawarta w cudzysłowie jest przechowywana jako wartość ciągu.
12345 | PodTypZmiennejTestowej()Przyciemnij moją zmienną jako wariantMojaZmienna = "32760.52"MsgBox "Typ zmiennej to " & VarType(MyVariable)Napis końcowy |