Funkcja VBA Val

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ęść numeryczną, 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łą funkcję 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

Możesz pobrać ten szablon VBA Val Function Excel tutaj - Szablon Excel funkcji VBA Val

Przykład 1

Wypróbujmy pierwszy przykład z prostą liczbą, np. „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 

Kiedy uruchomisz kod VBA za pomocą klawisza F5 lub ręcznie, zwróci wynik 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 ujemnym.

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 za pomocą 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, aż znajdzie znak nienumeryczny, tj. Wynik to 7459. Mimo że po wartości nienumerycznej „Dobra” znajdują się wartości liczbowe, to całkowicie ignoruje kolejne liczby.

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.