В этом руководстве будет показано, как использовать текстовую функцию в VBA.
Функция Text используется на листе Excel для возврата части строки в указанном формате. Функция Text не является функцией VBA, но может использоваться в VBA путем ссылки на объект функции рабочего листа.
WorksheetFunction.Text
Таким образом, синтаксис VBA будет следующим:
= WorksheetFunction.Text (Arg1, Arg2)
где Arg1 - это исходная строка, а Arg2 - это формат возвращаемой строки.
1234567 | Sub TestWSFunction ()Dim dte As StringDim strD As Stringdte = "05.08.2021"strD = WorksheetFunction.Text (dte, «мммм»)MsgBox strDКонец подписки |
В приведенном выше примере строковая переменная dte хранит дату. Затем функция Text возвращает часть даты, относящуюся к месяцу.
Форматирование чисел с помощью текстовой функции
Мы можем использовать текстовую функцию для форматирования чисел в нашем коде VBA.
1234567 | Дополнительный формат: валюта ()Dim strNum как строкаDim strFormat As StringstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$ #, ## 0.00")MsgBox strFormatКонец подписки |
Строка, возвращенная в приведенном выше примере, будет составлять 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 As Stringdte = "05.08.2021"strD = Формат (dte, "мммм")MsgBox strDКонец подписки |