VBA VAL | Как да използвам функцията VBA VAL? (с примери)

Excel VBA Val функция

Функцията Val в vba идва под низовите функции, тя също е вградена функция в VBA, която се използва за получаване на числовите стойности от променлива на данни, да предположим, че ако променлива има стойност като A10, функцията val ще ни даде 10 като изход, тя приема низ като аргумент и връща числата, присъстващи в низа.

VAL означава VALUE в терминологията на VBA. Тази функция преобразува низа, съдържащ числа, в действително число. Например, ако предоставите текстовия низ „1234 Global“, той ще върне само числовата част, т.е. 1234.

Често пъти, когато изтегляме или получаваме данните от уеб номера, обикновено се съхраняват като текстови стойности в електронна таблица. Преобразуването на текст в числа е най-трудната задача, ако не сте наясно с правилната функция в Excel. Като обикновена функция на работния лист имаме функция, наречена VALUE, която ще преобразува всички низове, които представляват числа, в точни числа с проста функция в работния лист. В тази статия ще покажем как това може да се постигне във VBA с помощта на функцията VAL.

Синтаксис

Той има само един аргумент, т.е. String.

  • String: Това е просто низова стойност, която се опитваме да извадим числовата част от нея.

И така, функцията VAL преобразува предоставения низ в числова стойност.

Забележка: Функцията VAL винаги игнорира интервалите и продължава да чете числата след интервала или символите.

Например, ако предоставеният низ е „145 45 666 3“, той ще игнорира интервалите и ще върне резултата като „145456663“.

Примери за функция VAL в Excel VBA

Можете да изтеглите този шаблон на VBA Val Function Excel тук - VBA Val Function Excel Template

Пример # 1

Нека опитаме първия пример с просто число, т.е. „14 56 47“

Кодът по-долу е за вас.

Код:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Преобразувайте горното като 145647 MsgBox k End Sub 

Когато стартирате VBA код с помощта на клавиш F5 или ръчно, той ще върне резултата като „145647“, като игнорира всички интервали, както е показано на изображението по-долу.

Пример # 2

В този пример ще видим какъв е резултатът от низа „+456“.

Код:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Преобразувайте горното като 456 MsgBox k End Sub 

Можете да стартирате този код ръчно или чрез клавиша F5, за да върнете стойността като 456, като пренебрегнете +456.

Пример # 3

Сега нека опитаме същото число с отрицателен знак.

Код:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Преобразувайте горното като -456 MsgBox k End Sub 

Този код ще върне стойността като -456 само защото номерът със знака на оператора трябва да бъде показан.

Пример # 4

Сега нека опитаме този низ „100 Kg“.

Код:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Игнорира KG и връща само 100 MsgBox k End Sub 

Ако стартирате този код ръчно или използвайки клавиш F5, този код по-горе игнорира „KG“ и връща само „100“ в полето за съобщения на VBA.

Пример # 5

Сега опитайте низ с дата, т.е. „14-05-2018“.

Код:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Връща 14 като резултат. MsgBox k Крайна под

Горният код връща 14 като резултат, тъй като функцията VAL може да извлече само числовата стойност, докато не намери друг, освен числов знак.

Пример # 6

Сега опитайте низа “7459Good456”.

Код:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Връща 7459 като резултат. MsgBox k Крайна под

Това ще извлече числата, докато намери нецифрения знак, т.е. резултатът е 7459. Въпреки че има числови стойности след нечисловата стойност „Добър“, той напълно игнорира числата след това.

Пример # 7

Сега опитайте низовата стойност „H 12456“.

Код:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Връща 0 като резултат. MsgBox k Крайна под

Изпълнете горния код, като използвате клавиш за бърз достъп F5 или ръчно, след което той връща резултата като нула. Тъй като първият символ на низа, който сме предоставили, е нецифрен знак, така че резултатът е нула.

Пример # 8

Сега опитайте този низ „24545. 2 ”.

Код:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Връща 24545.2 като резултат. MsgBox k Крайна под

Кодът връща резултата като 24545.2, тъй като функцията VBA VAL разглежда символната точка (.) Като десетичен знак и съответно връща резултата.