VBA VAL | Як використовувати функцію VBA VAL? (з прикладами)

Функція Val VBA Excel

Функція 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

Ви можете завантажити цей шаблон функції VBA Val Excel тут - Шаблон 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 Як варіант k = Val ("7459 Добре 456") 'Повертає 7459 як результат. MsgBox k End Sub

Це буде витягувати числа, поки не знайде нечисловий символ, тобто результат буде 7459. Незважаючи на те, що є числові значення після нечислового значення “Добре”, після цього вони повністю ігнорують числа.

Приклад No7

Тепер спробуйте значення рядка “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 Як варіант k = Val ("24545. 2") 'Повертає 24545.2 як результат. MsgBox k End Sub

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