Dieses Tutorial zeigt, wie Sie die Textfunktion in VBA verwenden.
Die Textfunktion wird in einem Excel-Arbeitsblatt verwendet, um einen Teil einer Zeichenfolge in einem angegebenen Format zurückzugeben. Die Textfunktion ist keine VBA-Funktion, kann jedoch in VBA verwendet werden, indem auf das Worksheet Function-Objekt verwiesen wird.
ArbeitsblattFunktion.Text
Die Syntax in VBA wäre daher wie folgt:
=ArbeitsblattFunktion.Text (Arg1, Arg2)
wobei Arg1 die ursprüngliche Zeichenfolge und Arg2 das Format der Zeichenfolge ist, die zurückgegeben werden soll.
1234567 | UntertestWSFunction()Dim dte As StringDim strD als Stringdte = "08.05.2021"strD= WorksheetFunction.Text(dte, "mmmm")MsgBox strDEnd Sub |
Im obigen Beispiel speichert die String-Variable dte ein Datum. Die Textfunktion gibt dann den Monatsteil des Datums zurück.
Zahlen mit der Textfunktion formatieren
Wir können die Textfunktion verwenden, um Zahlen in unserem VBA-Code zu formatieren.
1234567 | UnterformatWährung()Dim strNum als StringDim strFormat As StringstrNum = "75896.125"strFormat = WorksheetFunction.Text(strNum, "$#,##0.00")MsgBox strFormatEnd Sub |
Die im obigen Beispiel zurückgegebene Zeichenfolge wäre 75.896,13 $.
Andere Beispiele für die Zahlenformatierung mit der Textfunktion sind:
12345678 | =ArbeitsblattFunktion.Text(75896.125, "0")das wird zurückkommen: "75896"=ArbeitsblattFunktion.Text(75896.125, "0.0")das wird zurückkommen: "75896.1"=ArbeitsblattFunktion.Text(75896.125, "#,##0")das wird zurückkommen: "75,896" |
Excel verfügt jedoch über eine integrierte VBA-Funktion, die wir anstelle der Textfunktion verwenden können, wenn wir Datumsangaben und Zahlen in VBA formatieren möchten. Dies wird als Formatfunktion bezeichnet.
Die VBA-Formatierungsfunktion
Nehmen wir das obige Beispiel, anstatt WorksheetFunction.Text zu verwenden, können wir einfach die Format-Funktion verwenden, um die gleichen Ergebnisse zu erzielen.
12345678 | =Format(75896.125, "0")das wird zurückkommen: "75896"=Format(75896.125, "0.0")das wird zurückkommen: "75896.1"=Format(75896.125, "#,##0")das wird zurückkommen: "75,896" |
Ebenso können wir die Format-Funktion verwenden, um Datumsteile einer Zeichenfolge zu formatieren.
1234567 | Unter TestFormatFunction()Dim dte As StringDim strD als Stringdte = "08.05.2021"strD= Format(dte, "mmmm")MsgBox strDEnd Sub |