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

Функция Excel VBA Val

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

VAL означает VALUE в терминологии VBA. Эта функция преобразует строку, содержащую числа, в действительное число. Например, если вы укажете текстовую строку «1234 Global», она вернет только числовую часть, то есть 1234.

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

Синтаксис

У него только один аргумент, то есть String.

  • Строка: это просто строковое значение, из которого мы пытаемся извлечь числовую часть.

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

Примечание: функция VAL всегда игнорирует пробелы и продолжает читать числа после пробела или символов.

Например, если предоставленная строка - «145 45 666 3», она проигнорирует символы пробела и вернет результат как «145456663».

Примеры функции VAL в Excel VBA

Вы можете скачать этот шаблон Excel с функцией VBA Val здесь - Шаблон Excel с функцией VBA Val

Пример # 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 кг».

Код:

 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 End Sub

Приведенный выше код возвращает 14 в качестве результата, потому что функция VAL может извлекать только числовое значение, пока не найдет любой другой, кроме числового символа.

Пример # 6

Теперь попробуйте строку «7459Good456».

Код:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Возвращает 7459 в качестве результата. MsgBox k End Sub

Это будет извлекать числа до тех пор, пока не будет найден нечисловой символ, т.е. результат будет 7459. Несмотря на то, что после нечислового значения «Хорошо» есть числовые значения, он полностью игнорирует числа после этого.

Пример # 7

Теперь попробуйте строковое значение «H 12456».

Код:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Возвращает 0 в качестве результата. MsgBox k End Sub

Запустите приведенный выше код с помощью сочетания клавиш F5 или вручную, тогда результат будет равен нулю. Поскольку самый первый символ предоставленной строки не является числовым, результат равен нулю.

Пример # 8

Теперь попробуйте эту строку «24545. 2 ”.

Код:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'В качестве результата возвращает 24545,2. MsgBox k End Sub

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