Цей підручник продемонструє, як використовувати функцію тексту у VBA.
Функція Text використовується на робочому аркуші Excel для повернення частини рядка у визначеному форматі. Функція Text не є функцією VBA, але її можна використовувати у VBA, посилаючись на об’єкт Функція аркуша.
Робочий лист Функція.Текст
Тому синтаксис у VBA буде таким:
= WorksheetFunction.Text (Arg1, Arg2)
де Arg1 - вихідний рядок, а Arg2 - формат рядка, який ми хочемо повернути.
1234567 | Підтест WSFunction ()Dim dte As StringDim strD як рядокdte = "08.05.2021"strD = Робочий лист Функція.Текст (dte, "мммм")MsgBox strDEnd Sub |
У наведеному вище прикладі рядкова змінна dte зберігає дату. Потім функція Text повертає місячну частину дати.
Форматування чисел за допомогою текстової функції
Ми можемо використовувати текстову функцію для форматування чисел у нашому коді VBA.
1234567 | ПідформатCurrency ()Dim strNum As StringЗатемнити strFormat As StringstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$#, ## 0.00")MsgBox strFormatEnd Sub |
Рядок, повернутий у наведеному вище прикладі, складе 75 896,13 доларів.
Інші приклади форматування чисел за допомогою текстової функції:
12345678 | = WorksheetFunction.Text (75896.125, "0")це повернеться: "75896"= WorksheetFunction.Text (75896.125, "0.0")це повернеться: "75896,1"= WorksheetFunction.Text (75896.125, "#, ## 0")це повернеться: "75,896" |
Однак у Excel є вбудована функція VBA, яку ми можемо використовувати замість функції Text, якщо ми хочемо відформатувати дати та цифри у VBA. Ця функція відома як функція форматування.
Функція форматування VBA
Беручи приклад вище, замість того, щоб використовувати WorksheetFunction.Text, ми можемо просто використовувати функцію форматування для досягнення тих самих результатів.
12345678 | = Формат (75896.125, "0")це повернеться: "75896"= Формат (75896.125, "0.0")це повернеться: "75896,1"= Формат (75896.125, "#, ## 0")це повернеться: "75,896" |
Аналогічно ми можемо використовувати функцію форматування для форматування частин рядка дати.
1234567 | Sub TestFormatFunction ()Dim dte As StringDim strD як рядокdte = "08.05.2021"strD = Формат (dte, "мммм")MsgBox strDEnd Sub |