Denna handledning visar hur du använder textfunktionen i VBA.
Textfunktionen används i ett Excel -kalkylblad för att returnera en del av en sträng i ett visst format. Textfunktionen är inte en VBA -funktion, men kan användas i VBA genom att hänvisa till objektet Funktionsarkfunktion.
ArbetsbladFunktion.Text
Syntaxen i VBA skulle därför vara följande:
= WorksheetFunction.Text (Arg1, Arg2)
där Arg1 är den ursprungliga strängen och Arg2 är formatet på strängen som vi vill ha tillbaka.
1234567 | SubtestWSFunction ()Dim dte As StringDim strD Som strängdte = "08/05/2021"strD = WorksheetFunction.Text (dte, "mmmm")MsgBox strDAvsluta Sub |
I exemplet ovan lagrar strängvariabeln dte ett datum. Textfunktionen returnerar sedan månadsdelen av datumet.
Formatera nummer med textfunktionen
Vi kan använda textfunktionen för att formatera siffror i vår VBA -kod.
1234567 | Sub FormatCurrency ()Dim strNum Som strängDim strFormat som strängstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$#, ## 0.00")MsgBox strFormatAvsluta Sub |
Strängen som returneras i exemplet ovan skulle vara $ 75,896.13.
Andra exempel på talformatering med textfunktionen är:
12345678 | = WorksheetFunction.Text (75896.125, "0")detta kommer tillbaka: "75896"= WorksheetFunction.Text (75896.125, "0.0")detta kommer tillbaka: "75896,1"= WorksheetFunction.Text (75896.125, "#, ## 0")detta kommer tillbaka: "75,896" |
Excel har dock en inbyggd VBA -funktion som vi kan använda istället för textfunktionen om vi vill formatera datum och nummer inom VBA. Detta kallas Format -funktionen.
VBA -formatfunktionen
Med exemplet ovan, istället för att använda WorksheetFunction.Text, kan vi bara använda formateringsfunktionen för att uppnå samma resultat.
12345678 | = Format (75896.125, "0")detta kommer tillbaka: "75896"= Format (75896.125, "0.0")detta kommer tillbaka: "75896,1"= Format (75896.125, "#, ## 0")detta kommer tillbaka: "75,896" |
På samma sätt kan vi använda formateringsfunktionen för att formatera datumportioner av en sträng.
1234567 | Sub TestFormatFunction ()Dim dte As StringDim strD Som strängdte = "08/05/2021"strD = Format (dte, "mmmm")MsgBox strDAvsluta Sub |