Excel VBA-Textfunktion
Die VBA-Textfunktion wird nur in VBA verwendet. Es scheint, als würde es die Zahlen in Text konvertieren. In Wirklichkeit konvertiert es Zahlen in ein beliebiges Format wie Uhrzeit, Datum oder Zahlenbereich. Dazu müssen wir diese Funktion als Klasse aktivieren lassen.
Wenn wir das Argument von VBA Text sehen, werden wir sehen, dass es aus Arg1 und Arg2 besteht, wie unten gezeigt.
- Arg1 - Hier setzen wir den Wert, den wir konvertieren wollen, in das Standardformat.
- Arg2 - Und hier wählen wir das Format aus, in dem die Ausgabe erscheinen soll.
Beide Variablen werden als String definiert.
Wie benutze ich die Excel VBA-Textfunktion?
Anhand einiger Beispiele in Excel lernen wir, wie man eine VBA-Textfunktion verwendet.
Sie können diese VBA-Text-Excel-Vorlage hier herunterladen - VBA-Text-Excel-VorlageVBA-Textfunktion - Beispiel 1
Wir werden den Text oder die Zahlen in allen kommenden Beispielen auf unterschiedliche Weise in das Standardformat konvertieren.
Führen Sie die folgenden Schritte aus, um die Textfunktion in VBA zu verwenden.
Schritt 1: Öffnen Sie ein Modul, das auf der Registerkarte Einfügen verfügbar ist (siehe Abbildung unten).
Schritt 2: Schreiben Sie im geöffneten VBA-Modul die unten gezeigte Unterprozedur von VBA-Text.
Code:
Sub VBA_Text1 () End Sub
Schritt 3: Gemäß der Syntax von VBA-Text benötigen wir zwei Argumente. Definieren Sie also die erste Variable als String, in der die Eingabe erfolgen soll (siehe unten).
Code:
Sub VBA_Text1 () Dim Input1 As String End Sub
Schritt 4: Definieren Sie nun eine andere Variable, in der die Ausgabe erfolgen soll. Und das wäre auch als String.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String End Sub
Schritt 5: Betrachten Sie nun eine beliebige Zahl, die wir in das Standardformat konvertieren müssen. Dies könnte die Zahl sein, die wir sehen wollen, oder es könnte eine beliebige Zufallszahl sein. Angenommen, wir betrachten eine Dezimalzahl von 0, 123 und sehen, was wir erhalten würden.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 End Sub
Schritt 6: Nun werden wir in der anderen definierten Variablen, die Output ist, VBA-Text einfügen. Diese Funktion wird nun wie unten gezeigt als Arbeitsblattfunktion verwendet.
Schritt 7: Wählen Sie die VBA-Textfunktion aus der Liste der eingebauten Funktionen. Nun verwenden wir gemäß der Syntax unsere Variable und das Format, in das wir das als Arg1-Standardformat konvertieren möchten, sowie in das wir die ausgewählte Zahl konvertieren möchten.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (End Sub
Schritt 8: In Arg1 schreiben wir die Variable Input1, deren Nummer wir konvertieren müssen, und Arg2 hat das Format HH: MM: SS AM / PM.
Code:
Sub VBA_Text1 () Dim Input1 als String Dim Output als String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") End Sub
Schritt 9: Verwenden Sie nun MsgBox, um zu sehen, was als Ausgabe kommt.
Code:
Sub VBA_Text1 () Dim Input1 als String Dim Output als String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") MsgBox Output End Sub
Schritt 10: Führen Sie nun den Code aus, indem Sie die Taste F5 drücken oder auf die Wiedergabetaste klicken. Wir werden das Nachrichtenfeld mit einer Nachricht als 02:57:07 AM erhalten .
Wir werden ein anderes Mal sehen, wenn wir eine andere Nummer wählen.
Schritt 11: Ändern Sie nun die Eingabenummer als 12345 und das Ausgabeformat in TT-MMM-JJJJ wie unten gezeigt.
Code:
Sub VBA_Text2 () Dim Input1 As String Dim Output As String Input1 = 12345 Output = WorksheetFunction.Text (Input1, "TT-MM-JJJJ") MsgBox Output End Sub
Schritt 12: Führen Sie nun den Code erneut aus. Wir werden das Datum als 18.10.1933 bekommen
Wenn wir die genaue Zahl kennen, anhand derer wir ein genaues Datum oder eine genaue Uhrzeit ermitteln können, ist dies besser.
VBA-Textfunktion - Beispiel 2
Es gibt eine andere direkte Möglichkeit, VBA-Text anzuwenden. Dazu tragen wir einige Zahlen in die Excel-Tabelle ein, wie unten gezeigt.
Führen Sie die folgenden Schritte aus, um die Textfunktion in VBA zu verwenden.
Schritt 1: Schreiben Sie in einem Modul die Unterkategorie von VBA-Text wie unten gezeigt.
Code:
Sub VBA_Text3 () End Sub
Schritt 2: Wählen Sie den Zellenbereich aus, in dem die Ausgabe angezeigt werden soll. Betrachten wir diese Zellen als B1 bis B5.
Code:
Sub VBA_Text3 () Range ("B1: B5"). Value End Sub
Schritt 3: Wählen Sie nun den Bereich der Zellen aus, die konvertiert werden sollen. Hier reicht dieser Bereich von Zelle A1 bis A5 zusammen mit der Arbeitsblattfunktion.
Code:
Sub VBA_Text3 () Bereich ("B1: B5"). Wert = Bereich ("A1: A5"). Arbeitsblatt. End Sub
Schritt 4: Wählen Sie die Indexfunktion aus, indem Sie sie auswerten.
Code:
Sub VBA_Text3 () Range ("B1: B5"). Value = Range ("A1: A5"). Worksheet.Evaluate ("INDEX (End Sub
Schritt 5: Betrachten Sie nun die Textfunktion und wählen Sie den Bereich aus, den wir konvertieren müssen. Und das Format besteht aus mehreren Nullen.
Code:
Sub VBA_Text3 () Range ("B1: B5"). Value = Range ("A1: A5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " '000000 "), )") End Sub
Schritt 6: Führen Sie nun den Code aus, indem Sie die Taste F5 drücken oder auf die Wiedergabetaste klicken. Wir werden sehen, dass die in Spalte A verfügbaren Zahlen jetzt in Text mit mehreren Nullen umgewandelt wurden, was zu 6-stelligen Zahlen in Spalte B führt.
Nun wollen wir sehen, was passieren würde, wenn wir das Ausgabeformat wieder von führenden Nullen in das Zeitformat ändern.
Schritt 7: Geben Sie in Arg2 das Zeitformat HH: MM: SS ein und ändern Sie die Ausgabebereichszelle in C1 bis C5, ohne die vom vorherigen Code erhaltene Ausgabe zu stören.
Code:
Sub VBA_Text3 () Range ("C1: C5"). Value = Range ("C1: C5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " hh: mm: ss "), ) ) End Sub
Schritt 8: Führen Sie den Code erneut aus. Wir werden sehen, Spalte C wird mit dem Standardzeitformat gefüllt.
Versuchen wir es mit einem anderen Experiment.
Schritt 9: In diesem Schritt ändern wir den Bereich der Ausgabezellen von D1 bis D5, in dem der VBA-Text angezeigt wird. Ändern Sie das Arg2 im Datumsformat TT-MMM-JJJJ wie unten gezeigt.
Code:
Sub VBA_Text3 () Range ("D1: D5"). Value = Range ("D1: D5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " TT-MMM-JJJJ ")") ) End Sub
Schritt 10: Führen Sie den Code erneut aus. Dieses Mal sehen wir, dass das Datum in Spalte D angezeigt wird. Diese Datumsangaben haben das Format TT-MMM-JJJJ.
Auf diese Weise können wir die Zahlen in jedem gewünschten Standardformat ändern.
Vor- und Nachteile der Excel VBA-Textfunktion
- Dies ist einfach zu implementieren.
- Wir können die Zahlen in jedem Format ändern, das wir sehen möchten.
- Wir können keinen Text in das gewünschte Zahlenformat konvertieren.
Dinge, an die man sich erinnern sollte
- VBA-Text konvertiert nur Zahlen in Zahlen. Das Zahlenformat ist jedoch das Standardformat wie Datum, Uhrzeit, die Kombination aus Datum und Uhrzeit oder eine beliebige Ziffernfolge.
- Wenn Sie die Zahlen anwenden und in ein Format mit vorangestellten Nullen ändern, setzen Sie den Apostroph vor die Nullen. Damit die Zahlen in Text umgewandelt werden und die Nullen erscheinen.
- Wenn wir versuchen, Text mit VBA-Text zu konvertieren, wird die Ausgabe nur als Text ausgegeben.
- Um die genaue Ausgabe zu erhalten, müssen wir die Zahlenkombination kennen, die die genaue Uhrzeit und das genaue Datum liefert, die wir sehen möchten.
- Speichern Sie danach immer den gesamten Code im Makro-fähigen Format, damit der Code nicht verloren geht.
Empfohlene Artikel
Dies ist eine Anleitung zur VBA-Textfunktion. Hier diskutieren wir die Verwendung der Textfunktion in Excel VBA zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -
- Kopieren Einfügen Funktion in VBA
- Teilzeichenfolge-Excel-Funktion
- VBA-Index außerhalb des gültigen Bereichs
- Excel ISNUMBER Formula