Този урок ще покаже как да използвате текстовата функция във VBA.
Функцията Text се използва в работен лист на Excel за връщане на част от низ в определен формат. Функцията Text не е VBA функция, но може да се използва във VBA, като се позовава на обекта Функция на работен лист.
Работен лист Функция.Текст
Следователно синтаксисът във VBA ще бъде следният:
= WorksheetFunction.Text (Arg1, Arg2)
където Arg1 е оригиналният низ и Arg2 е форматът на низа, който искаме да бъде върнат.
1234567 | Подтест WSFunction ()Dim dte As StringDim strD As Stringdte = "08/05/2021"strD = Работен лист Функция.Текст (dte, "mmmm")MsgBox strDEnd Sub |
В горния пример низовата променлива dte съхранява дата. След това функцията Text връща месечната част от датата.
Форматиране на числа с текстовата функция
Можем да използваме текстовата функция, за да форматираме числата в нашия VBA код.
1234567 | Подформат: Валута ()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, можем просто да използваме функцията Format, за да постигнем същите резултати.
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 = "08/05/2021"strD = Формат (dte, "mmmm")MsgBox strDEnd Sub |