Tento tutoriál ukáže, ako používať textovú funkciu vo VBA.
Funkcia Text sa používa v hárku programu Excel na vrátenie časti reťazca v určenom formáte. Funkcia Text nie je funkciou VBA, ale dá sa vo VBA použiť odkazom na objekt Funkcia pracovného hárka.
WorksheetFunction.Text
Syntax vo VBA by preto bola nasledovná:
= WorksheetFunction.Text (Arg1, Arg2)
kde Arg1 je pôvodný reťazec a Arg2 je formát reťazca, ktorý chceme vrátiť.
1234567 | Sub testWSFunction ()Dim dte As StringDim strD ako reťazecdte = "08/05/2021"strD = WorksheetFunction.Text (dte, "mmmm")MsgBox strDKoniec pod |
Vo vyššie uvedenom príklade reťazcová premenná dte ukladá dátum. Funkcia Text potom vráti mesačnú časť dátumu.
Formátovanie čísel pomocou textovej funkcie
Na formátovanie čísel v našom kóde VBA môžeme použiť textovú funkciu.
1234567 | Podformát Mena ()Dim strNum As StringDim strFormat ako reťazecstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$#, ## 0,00")MsgBox strFormatKoniec pod |
Reťazec vrátený vo vyššie uvedenom príklade bude 75 896,13 dolárov.
Ďalšie príklady formátovania čísel pomocou textovej funkcie sú:
12345678 | = WorksheetFunction.Text (75896.125, "0")toto sa vráti: "75896"= WorksheetFunction.Text (75896.125, "0,0")toto sa vráti: „75896,1“= WorksheetFunction.Text (75896.125, "#, ## 0")toto sa vráti: "75,896" |
Excel však má vstavanú funkciu VBA, ktorú môžeme použiť namiesto funkcie Text, ak chceme vo VBA formátovať dátumy a čísla. Toto je známe ako funkcia Format.
Funkcia formátu VBA
Ak vezmeme príklad vyššie, namiesto použitia WorksheetFunction.Text, na dosiahnutie rovnakých výsledkov môžeme použiť iba funkciu formátovania.
12345678 | = Formát (75896.125, "0")toto sa vráti: "75896"= Formát (75896.125, "0,0")toto sa vráti: „75896,1“= Formát (75896.125, "#, ## 0")toto sa vráti: "75,896" |
Podobne môžeme použiť funkciu formátovania na formátovanie dátumových častí reťazca.
1234567 | Sub TestFormatFunction ()Dim dte As StringDim strD ako reťazecdte = "08/05/2021"strD = formát (dte, "mmmm")MsgBox strDKoniec pod |