Ten samouczek nauczy Cię, jak korzystać z Czy numeryczne oraz Czy numer funkcje w VBA, aby sprawdzić, czy wartości są liczbami.
IsNumeric to wbudowana funkcja VBA, natomiast IsNumber to funkcja Excela, którą można wywołać z kodu VBA.
Różnica między IsNumber i IsNumeric w VBA
IsNumber sprawdza, czy wartość jest przechowywana jako liczba. Natomiast IsNumeric sprawdza, czy wartość można przekonwertować na liczbę.
Na przykład, jeśli przekażesz pustą komórkę jako parametr, IsNumber zwróci FALSE, a IsNumeric zwróci TRUE. Ponadto, jeśli przekażesz komórkę zawierającą liczbę przechowywaną jako tekst, IsNumber zwróci FALSE i IsNumeric TRUE.
Musisz zwrócić uwagę na te ograniczenia obu funkcji i zdecydować, w jakich przypadkach lepiej jest użyć IsNumeric, a kiedy IsNumber.
Używanie IsNumeric w VBA
Czy numeryczne to funkcja VBA, która sprawdza, czy wartość jest liczbowa i zwraca w wyniku logiczną wartość PRAWDA lub FAŁSZ.
Funkcja może przyjmować zmienną lub wartość komórki.
Oto przykład pobrania wartości komórki:
12345 | If IsNumeric(Sheet1.Range("A1").Value) = True WtedyMsgBox "Wartość w A1 jest liczbowa"W przeciwnym razieMsgBox "Wartość w A1 nie jest liczbowa"Zakończ, jeśli |
W tym przykładzie sprawdzamy, czy wartość z komórki A1 jest liczbowa za pomocą IsNumeric. Ta funkcja zwraca odpowiedni komunikat, w zależności od wyniku funkcji.
W następnym przykładzie wykonaj tę samą operację, z wyjątkiem zmiennej zamiast wartości komórki:
123456789 | Dim n jako wariantn = Arkusz1.Zakres("A1").WartośćJeśli IsNumeric(n) = Prawda WtedyMsgBox "Wartość w A1 jest liczbowa"W przeciwnym razieMsgBox "Wartość w A1 nie jest liczbowa"Zakończ, jeśli |
Używanie IsNumber w VBA
Czy numer to funkcja Excela, której można używać w VBA. Ma prawie podobny wynik jak IsNumeric. Spójrzmy na przykład funkcji IsNumber:
123456789 | If Application.WorksheetFunction.IsNumber(Sheet1.Range("A1").Value) = True ThenMsgBox "Wartość w A1 jest liczbowa"W przeciwnym razieMsgBox "Wartość w A1 nie jest liczbowa"Zakończ, jeśli |
Jak widać z kodu, różnica polega na składni podczas wywoływania funkcji. Ponieważ IsNumber jest funkcją Excela, musimy umieścić Aplikacja.Arkusz Funkcja przed wywołaniem funkcji.