VBA VAL - Jak korzystać z funkcji VBA VAL? (z przykładami)

Spisie treści

Funkcja Excel VBA Val

Funkcja Val w vba znajduje się pod funkcjami tekstowymi, jest również funkcją wbudowaną w VBA, która służy do pobierania wartości liczbowych ze zmiennej danych, załóżmy, że jeśli zmienna ma wartość A10, to funkcja val da nam 10 jako wyjście, to przyjmuje ciąg jako argument i zwraca liczby obecne w ciągu.

VAL oznacza WARTOŚĆ w terminologii VBA. Ta funkcja konwertuje ciąg zawierający liczby na liczbę rzeczywistą. Na przykład, jeśli podasz ciąg tekstowy „1234 Global”, zwróci on tylko część liczbową, tj. 1234.

Często, gdy pobieramy lub pobieramy dane z numerów internetowych, są one zwykle przechowywane jako wartości tekstowe w arkuszu kalkulacyjnym. Konwersja tekstu na liczby jest najtrudniejszym zadaniem, jeśli nie znasz prawidłowej funkcji w programie Excel. Jako zwykła funkcja arkusza mamy funkcję o nazwie WARTOŚĆ, która przekształci cały ciąg reprezentujący liczby na dokładne liczby za pomocą prostej funkcji w arkuszu. W tym artykule pokażemy, jak można to osiągnąć w VBA za pomocą funkcji VAL.

Składnia

Ma tylko jeden argument, tj. String.

  • Łańcuch: jest to po prostu ciąg znaków, z którego próbujemy uzyskać część liczbową.

Tak więc funkcja VAL konwertuje podany ciąg na wartość liczbową.

Uwaga: funkcja VAL zawsze ignoruje znaki spacji i kontynuuje odczytywanie liczb po znaku lub znakach spacji.

Na przykład, jeśli podany ciąg to „145 45 666 3”, zignoruje spacje i zwróci wynik jako „145456663”.

Przykłady funkcji VAL w Excel VBA

Przykład 1

Wypróbujmy pierwszy przykład z prostą liczbą, tj. „14 56 47”.

Poniższy kod jest dla Ciebie.

Kod:

Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Zamień powyższe na 145647 MsgBox k End Sub

Po uruchomieniu kodu VBA za pomocą klawisza F5 lub ręcznie, wynik zwróci jako „145647”, ignorując wszystkie znaki spacji, jak pokazano na poniższym obrazku.

Przykład nr 2

W tym przykładzie zobaczymy, jaki wynik otrzymujemy jako „+456”.

Kod:

Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Zamień powyższe na 456 MsgBox k End Sub

Możesz uruchomić ten kod ręcznie lub za pomocą klawisza F5, aby zwrócić wartość 456, ignorując +456.

Przykład nr 3

Teraz spróbujmy tej samej liczby ze znakiem minus.

Kod:

Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Zamień powyższe na -456 MsgBox k End Sub

Ten kod zwróci wartość -456 tylko dlatego, że powinna zostać wyświetlona liczba ze znakiem operatora.

Przykład 4

Teraz wypróbujmy ten ciąg „100 kg”.

Kod:

Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Ignoruje KG i zwraca tylko 100 MsgBox k End Sub

Jeśli uruchomisz ten kod ręcznie lub przy użyciu klawisza F5, powyższy kod ignoruje „KG” i zwraca tylko „100” w oknie komunikatu VBA.

Przykład nr 5

Teraz spróbuj wpisać datę, tj. „14-05-2018”.

Kod:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Zwraca 14 jako wynik. MsgBox k End Sub

Powyższy kod zwraca jako wynik 14, ponieważ funkcja VAL może pobierać wartość liczbową tylko do momentu, gdy znajdzie znak inny niż numeryczny.

Przykład nr 6

Teraz wypróbuj ciąg „7459Good456”.

Kod:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Zwraca 7459 jako wynik. MsgBox k End Sub

Spowoduje to wyodrębnienie liczb do momentu znalezienia znaku nienumerycznego, tj. Wynikiem jest 7459. Mimo że po wartości nienumerycznej „Dobra” znajdują się wartości liczbowe, kolejne liczby są całkowicie ignorowane.

Przykład nr 7

Teraz wypróbuj wartość ciągu „H 12456”.

Kod:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Zwraca 0 jako wynik. MsgBox k End Sub

Uruchom powyższy kod za pomocą klawisza skrótu F5 lub ręcznie, a następnie zwraca wynik jako zero. Ponieważ pierwszy znak podanego przez nas łańcucha jest znakiem nienumerycznym, więc wynikiem jest zero.

Przykład nr 8

Teraz spróbuj tego ciągu „24545. 2 ”.

Kod:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Zwraca 24545.2 jako wynik. MsgBox k End Sub

Kod zwraca wynik jako 24545.2, ponieważ funkcja VBA VAL traktuje kropkę (.) Jako znak dziesiętny i odpowiednio zwraca wynik.

Interesujące artykuły...