Denne opplæringen vil demonstrere hvordan du bruker tekstfunksjonen i VBA.
Tekstfunksjonen brukes i et Excel -regneark for å returnere en del av en streng i et spesifisert format. Tekstfunksjonen er ikke en VBA -funksjon, men kan brukes i VBA ved å referere til regnearkfunksjonsobjektet.
RegnearkFunksjon.Tekst
Syntaksen i VBA vil derfor være som følger:
= WorksheetFunction.Text (Arg1, Arg2)
hvor Arg1 er den opprinnelige strengen og Arg2 er formatet til strengen vi ønsker returnert.
1234567 | Sub TestWSFunction ()Dim dte As StringDim strD Som strengdte = "08.05.2021"strD = WorksheetFunction.Text (dte, "mmmm")MsgBox strDSlutt Sub |
I eksemplet ovenfor lagrer strengvariabelen dte en dato. Tekstfunksjonen returnerer deretter månedsdelen av datoen.
Formatering av tall med tekstfunksjonen
Vi kan bruke tekstfunksjonen til å formatere tall i vår VBA -kode.
1234567 | Sub FormatCurrency ()Dim strNum As StringDim strFormat As StringstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$#, ## 0.00")MsgBox strFormatSlutt Sub |
Strengen som returneres i eksemplet ovenfor vil være $ 75.896,13.
Andre eksempler på tallformatering ved hjelp av tekstfunksjonen er:
12345678 | = WorksheetFunction.Text (75896.125, "0")dette kommer tilbake: "75896"= WorksheetFunction.Text (75896.125, "0.0")dette kommer tilbake: "75896.1"= WorksheetFunction.Text (75896.125, "#, ## 0")dette kommer tilbake: "75,896" |
Imidlertid har Excel en innebygd VBA -funksjon som vi kan bruke i stedet for tekstfunksjonen hvis vi ønsker å formatere datoer og tall i VBA. Dette er kjent som Format -funksjonen.
VBA -formatfunksjonen
Ved å ta eksemplet ovenfor, i stedet for å bruke WorksheetFunction.Text, kan vi bare bruke Format -funksjonen for å oppnå de samme resultatene.
12345678 | = Format (75896.125, "0")dette kommer tilbake: "75896"= Format (75896.125, "0.0")dette kommer tilbake: "75896.1"= Format (75896.125, "#, ## 0")dette kommer tilbake: "75,896" |
På samme måte kan vi bruke formateringsfunksjonen til å formatere datodeler av en streng.
1234567 | Sub TestFormatFunction ()Dim dte As StringDim strD Som strengdte = "08.05.2021"strD = Format (dte, "mmmm")MsgBox strDSlutt Sub |