Tento tutoriál předvede, jak používat textovou funkci ve VBA.
Funkce Text se používá v listu aplikace Excel k vrácení části řetězce v zadaném formátu. Funkce Text není funkcí VBA, ale lze ji ve VBA použít odkazem na objekt Funkce listu.
WorksheetFunction.Text
Syntaxe ve VBA by tedy byla následující:
= WorksheetFunction.Text (Arg1, Arg2)
kde Arg1 je původní řetězec a Arg2 je formát řetězce, který chceme vrátit.
1234567 | Dílčí testWSFunction ()Dim dte As StringDim strD jako řetězecdte = "08/05/2021"strD = WorksheetFunction.Text (dte, "mmmm")MsgBox strDEnd Sub |
Ve výše uvedeném příkladu řetězcová proměnná dte ukládá datum. Funkce Text poté vrátí měsíční část data.
Formátování čísel pomocí textové funkce
K formátování čísel v našem kódu VBA můžeme použít textovou funkci.
1234567 | Dílčí formát Měna ()Dim strNum jako řetězecDim strFormat jako řetězecstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$#, ## 0,00")MsgBox strFormatEnd Sub |
Řetězec vrácený ve výše uvedeném příkladu by byl 75 896,13 $.
Dalšími příklady formátování čísel pomocí textové funkce jsou:
12345678 | = WorksheetFunction.Text (75896.125, "0")toto se vrátí: "75896"= WorksheetFunction.Text (75896.125, "0,0")toto se vrátí: "75896,1"= WorksheetFunction.Text (75896.125, "#, ## 0")toto se vrátí: "75,896" |
Excel však má vestavěnou funkci VBA, kterou můžeme použít místo funkce Text, pokud chceme ve VBA formátovat data a čísla. Toto je známé jako funkce Format.
Funkce formátu VBA
Vezmeme -li výše uvedený příklad, namísto použití WorksheetFunction.Text, můžeme k dosažení stejných výsledků použít pouze funkci Format.
12345678 | = Formát (75896.125, "0")toto se vrátí: "75896"= Formát (75896.125, "0,0")toto se vrátí: "75896,1"= Formát (75896.125, "#, ## 0")toto se vrátí: "75,896" |
Podobně můžeme použít funkci formátování k formátování datových částí řetězce.
1234567 | Dílčí testovací funkce ()Dim dte As StringDim strD jako řetězecdte = "08/05/2021"strD = Formát (dte, "mmmm")MsgBox strDEnd Sub |