Denne vejledning viser, hvordan du bruger tekstfunktionen i VBA.
Tekstfunktionen bruges i et Excel -regneark til at returnere en del af en streng i et bestemt format. Tekstfunktionen er ikke en VBA -funktion, men kan bruges i VBA ved at henvise til objektet Funktionsarkfunktion.
ArbejdsarkFunktion.Tekst
Syntaksen i VBA ville derfor være som følger:
= WorksheetFunction.Text (Arg1, Arg2)
hvor Arg1 er den originale streng og Arg2 er formatet på den streng, vi ønsker returneret.
1234567 | SubtestWSFunction ()Dim dte Som strengDim strD Som strengdte = "08/05/2021"strD = WorksheetFunction.Text (dte, "mmmm")MsgBox strDAfslut Sub |
I ovenstående eksempel gemmer strengvariablen dte en dato. Tekstfunktionen returnerer derefter månedsdelen af datoen.
Formatering af tal med tekstfunktionen
Vi kan bruge tekstfunktionen til at formatere tal i vores VBA -kode.
1234567 | Sub FormatCurrency ()Dim strNum Som strengDim strFormat As StringstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$#, ## 0.00")MsgBox strFormatAfslut Sub |
Strengen, der returneres i ovenstående eksempel, ville være $ 75.896,13.
Andre eksempler på talformatering ved hjælp af tekstfunktionen er:
12345678 | = WorksheetFunction.Text (75896.125, "0")dette vender tilbage: "75896"= WorksheetFunction.Text (75896.125, "0.0")dette vender tilbage: "75896,1"= WorksheetFunction.Text (75896.125, "#, ## 0")dette vender tilbage: "75,896" |
Excel har imidlertid en indbygget VBA -funktion, som vi kan bruge i stedet for tekstfunktionen, hvis vi ønsker at formatere datoer og tal inden for VBA. Dette kaldes formateringsfunktionen.
VBA -formatfunktionen
Ved at tage eksemplet ovenfor i stedet for at bruge WorksheetFunction.Text kan vi bare bruge Format -funktionen til at opnå de samme resultater.
12345678 | = Format (75896.125, "0")dette vender tilbage: "75896"= Format (75896.125, "0.0")dette vender tilbage: "75896.1"= Format (75896.125, "#, ## 0")dette vender tilbage: "75,896" |
På samme måde kan vi bruge formateringsfunktionen til at formatere datodele af en streng.
1234567 | Sub TestFormatFunction ()Dim dte Som strengDim strD Som strengdte = "08/05/2021"strD = Format (dte, "mmmm")MsgBox strDAfslut Sub |