VBA-Funktionen für Zeichenketten und Teilzeichenketten
In this Article
VBA verfügt über viele String-Funktionen, die es Ihnen ermöglichen, Text und Zeichenketten in Ihrem Code zu manipulieren und damit zu arbeiten. In diesem Lernprogramm werden wir Funktionen behandeln, mit denen Sie Teilzeichenketten aus Hauptzeichenketten extrahieren, Leerzeichen aus Zeichenketten entfernen, die Groß- und Kleinschreibung eines Textes oder Zeichenkette umwandeln, Zeichenketten vergleichen und andere nützliche String-Funktionen verwenden können.
Extrahieren einer Teilzeichenkette
Die VBA-Left-String-Funktion
Mit der VBA-Left-Funktion können Sie eine Teilzeichenkette aus einem Text oder einer Zeichenkette extrahieren, beginnend auf der linken Seite. Die Syntax der VBA-Left-String-Funktion lautet: Left(Zeichenkette, Anzahl_Zeichen) wobei:
- Zeichenkette – Der Originaltext.
- Anzahl_Zeichen – Eine ganze Zahl, die die Anzahl der Zeichen angibt, die aus dem Originaltext extrahiert werden sollen, beginnend mit dem Anfang.
Der folgende Code zeigt Ihnen, wie Sie die Left-String-Funktion verwenden können, um die ersten vier Zeichen der angegebenen Zeichenkette zu extrahieren:
Sub VerwendungLeftStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "AutomateExcel"
WertZwei = Left(WertEins, 4)
MsgBox WertZwei
End Sub
Das Ergebnis ist:
Die Left-Funktion hat die ersten vier Buchstaben von AutomateExcel extrahiert, die Auto sind.
Die VBA-Right-String-Funktion
Mit der VBA-Right-Funktion können Sie eine Teilzeichenkette aus einem Text oder einer Zeichenkette von der rechten Seite aus extrahieren. Die Syntax der VBA-Right-String-Funktion lautet: Right(Zeichenkette, Anzahl_Zeichen) wobei:
- Zeichenkette – Der ursprüngliche Text.
- Anzahl_Zeichen– Eine ganze Zahl, die die Anzahl der Zeichen angibt, die aus dem Originaltext extrahiert werden sollen, beginnend mit dem Ende.
Der folgende Code zeigt Ihnen, wie Sie die Right-String-Funktion verwenden können, um die letzten vier Zeichen der Zeichenkette zu extrahieren:
Sub VerwendungRightStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "AutomateExcel"
WertZwei = Right(WertEins, 4)
MsgBox WertZwei
End Sub
Das Ergebnis ist:
Die Right-Funktion hat die letzten vier Buchstaben von AutomateExcel extrahiert, die xcel sind.
Die VBA-Mid-String-Funktion
Mit der VBA-Mid-Funktion können Sie eine Teilzeichenkette aus einem Text oder einer Zeichenkette extrahieren, und zwar ab einer beliebigen Position innerhalb der Zeichenkette, die Sie angeben. Die Syntax der VBA-Mid-String Function lautet: Mid(String, StartPosition, [Anzahl_Zeichen]) wobei:
- String – Der ursprüngliche Text.
- StartPosition – Die Position im Originaltext, an der die Funktion mit der Extraktion beginnt.
- Anzahl_Zeichen(Optional) – Eine ganze Zahl, die die Anzahl der Zeichen angibt, die aus dem Originaltext ab der Startposition extrahiert werden sollen. Ist der Wert leer, gibt die MID-Funktion alle Zeichen ab der Startposition zurück.
Der folgende Code zeigt Ihnen, wie Sie die Mid-String-Funktion verwenden können, um vier Zeichen zu extrahieren, beginnend mit der zweiten Position oder dem zweiten Zeichen in der Zeichenfolge:
Sub VerwendungMidStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "AutomateExcel"
WertZwei = Mid(WertEins, 2, 4)
MsgBox WertZwei
End Sub
Das Ergebnis wird in einer Meldungsbox ausgegeben:
Die Mid-Funktion hat die vier Buchstaben von AutomateExcel ab dem zweiten Zeichen/Position/Buchstaben, die utom sind, extrahiert.
Ermitteln der Position einer Teilzeichenkette
Die VBA-Instr-String-Funktion
Die VBA-Instr-Funktion gibt die Anfangsposition einer Teilzeichenkette innerhalb einer anderen Zeichenkette zurück. Bei dieser Funktion wird die Groß- und Kleinschreibung beachtet. Die Syntax der VBA-Instr-String-Funktion lautet: Instr([Start], Zeichenfolge, Teilzeichenfolge, [Vergleichen]) wobei:
- Start(Optional) – Gibt die Startposition an, ab der die Funktion suchen soll. Ist sie leer, wird der Standardwert 1 verwendet.
- String – Der ursprüngliche Text.
- Teilzeichenfolge – Die Teilzeichenfolge innerhalb des Originaltextes, deren Position Sie suchen möchten.
- Vergleichen(Optional) – Hier wird die Art des Vergleichs angegeben, der durchgeführt werden soll. Wenn das Feld leer ist, wird ein Binärvergleich verwendet.
-vbBinaryCompare – Binärvergleich (Groß- und Kleinschreibung werden als unterschiedlich betrachtet)
-vbTextCompare – Textvergleich (Groß- und Kleinschreibung werden als gleich angesehen)
-vbDatabaseCompare – Datenbankvergleich (Diese Option wird nur in Microsoft Access verwendet und ist ein Vergleich auf Basis der Datenbank)
Der folgende Code zeigt Ihnen, wie Sie die Funktion InstrString verwenden, um das erste Vorkommen der Teilzeichenkette „Th“ innerhalb der Hauptzeichenkette zu ermitteln:
Sub VerwendungInstrStringFunktion()
Dim WertEins As String
Dim position_teilzeichenkette As Integer
WertEins = "Dies ist der Text "
position_teilzeichenkette = InStr(1, WertEins, "Di")
Debug.Print position_teilzeichenkette
End Sub
Das Ergebnis (ausgegeben im Direktfenster) ist:
Die Instr-Funktion hat die Position des ersten Vorkommens der Teilzeichenkette „Di“ zurückgegeben, die 1 ist. Beachten Sie, dass diese Funktion die Leerzeichen in die Zählung einbezieht.
Die VBA-InstrRev-String-Funktion
Die VBA-Funktion InstrRev gibt die Anfangsposition einer Teilzeichenkette innerhalb einer anderen Zeichenkette zurück, beginnt aber mit der Zählung der Position am Ende der Zeichenkette. Bei dieser Funktion wird die Groß- und Kleinschreibung beachtet. Die Syntax der VBA-InstrRev-String-Funktion lautet: InstrRev(Zeichenkette, Teilzeichenkette, [Start], [Vergleich]) wobei:
- Zeichenfolge – Der ursprüngliche Text.
- Teilzeichenfolge – Die Teilzeichenfolge innerhalb des Originaltextes, deren Position Sie suchen möchten.
- Start (Optional) – Hier wird die Position angegeben, an der die Suche beginnen soll. Ist die Angabe leer, beginnt die Funktion mit der Suche am letzten Zeichen.
- Vergleichen (Optional) – Gibt die Art des Vergleichs an, der durchgeführt werden soll. Ist das Feld leer, wird ein Binärvergleich durchgeführt.
-vbBinaryCompare – Binärvergleich (Groß- und Kleinschreibung werden als unterschiedlich betrachtet)
-vbTextCompare – Textvergleich (Groß- und Kleinschreibung wird als gleich angesehen)
-vbDatabaseCompare – Datenbankvergleich (Diese Option wird nur in Microsoft Access verwendet und ist ein Vergleich auf Basis der Datenbank)
Der folgende Code zeigt Ihnen, wie Sie die String-Funktion InstrRev verwenden können, um das erste Vorkommen der Teilzeichenkette „Di“ in der Hauptzeichenkette zu ermitteln, beginnend mit dem Ende der Zeichenkette:
Sub VerwendungInstrRevStringFunktion()
Dim WertEins As String
Dim position_teilzeichenkette As Integer
WertEins = "This is The Text "
position_teilzeichenkette = InStrRev(WertEins, "Th")
Debug.Print position_teilzeichenkette
End Sub
Das Ergebnis wird im Direktfenster ausgegeben:
Die Funktion InstrRev hat die Position des ersten Vorkommens der Teilzeichenkette „Di“ zurückgegeben, aber die Zählung beginnt am Ende, also bei 9. Beachten Sie, dass diese Funktion die Leerzeichen mitzählt.
Entfernen von Leerzeichen aus einer Zeichenfolge
Die VBA-LTrim-String-Funktion
Die VBA-LTrim-Funktion entfernt alle Leerzeichen am Anfang aus einem Text oder einer Zeichenfolge. Die Syntax der VBA-LTrim-String-Funktion lautet: LTrim(String) wobei:
- String – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die VBA LTrim-Funktion verwenden, um die Leerzeichen am Anfang der angegebenen Zeichenfolge zu entfernen:
Sub VerwendungLTrimStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = " This is the website adddress https://www.automateexcel.com/"
WertZwei = LTrim(WertEins)
MsgBox WertEins
MsgBox WertZwei
End Sub
Die Ergebnisse sind:
Die Funktion LTrim hat die Leerzeichen am Anfang beim WertZwei entfernt, der in der zweiten Message Box angezeigt wird.
Die VBA-Funktion RTrim String
Die VBA-Funktion RTrim entfernt alle Leerzeichen am Ende eines Textes oder einer Zeichenfolge. Die Syntax der VBA-RTrim-String-Function lautet: RTrim(Zeichenkette) wobei:
- Zeichenkette – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die VBA-RTrim-Funktion verwenden können, um die Leerzeichen am Ende der angegebenen Zeichenkette zu entfernen:
Sub VerwendungRTrimStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "This is the website adddress https://www.automateexcel.com/ "
WertZwei = RTrim(WertEins)
MsgBox WertEins
MsgBox WertZwei
End Sub
Die gelieferten Ergebnisse sind:
Die RTrim-Funktion hat die Leerzeichen am Ende von WertZwei entfernt, was in der zweiten Meldungsbox angezeigt wird.
Die VBA-Funktion Trim String
Die VBA Trim-Funktion entfernt alle führenden und nachfolgenden Leerzeichen aus einem Text oder einer Zeichenfolge. Die Syntax der VBA Trim-String-Function lautet: Trim(Zeichenkette) wobei:
- Zeichenkette – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die VBA Trim-Funktion verwenden können, um die Leerzeichen am Anfang und Ende in der angegebenen Zeichenfolge zu entfernen:
Sub VerwendungTrimStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = " This is the website adddress https://www.automateexcel.com/ "
WertZwei = Trim(WertEins)
MsgBox WertEins
MsgBox WertZwei
End Sub
Die Ergebnisse sind:
Die Trim-Funktion hat die Leerzeichen am Anfang und Ende beim WertZwei entfernt, der in der zweiten Meldungsbox angezeigt wird.
VBA-Case-Funktionen
Die VBA-LCase-String-Funktion
Die VBA-LCase-Funktion wandelt Buchstaben in einem Text oder einer Zeichenfolge in Kleinbuchstaben um. Die Syntax der VBA-LCase-String-Funktion lautet: LCase(Zeichenkette) wobei:
- Zeichenkette – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die LCase-String-Funktion verwenden können, um alle Buchstaben in der angegebenen Zeichenkette in Kleinbuchstaben umzuwandeln:
Sub VerwendungLCaseStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "THIS IS THE PRODUCT"
WertZwei = LCase(WertEins)
MsgBox wertZwei
End Sub
Das Ergebnis ist:
Die LCase-Funktion hat alle Buchstaben der Zeichenkette in Kleinbuchstaben umgewandelt.
Die VBA UCase String-Funktion
Die VBA UCase-Funktion wandelt Buchstaben in einem Text oder einer Zeichenfolge in Großbuchstaben um. Die Syntax der VBA-UCase-String-Funktion lautet: UCase(Zeichenkette) wobei:
- Zeichenkette – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die UCase-String-Funktion verwenden können, um alle Buchstaben in der angegebenen Zeichenkette in Großbuchstaben umzuwandeln:
Sub VerwendungUCaseStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "this is the product"
WertZwei = UCase(WertEins)
MsgBox WertZwei
End Sub
Das Ergebnis ist:
Die UCase-Funktion hat alle Buchstaben der Zeichenkette in Großbuchstaben umgewandelt.
Die VBA-StrConv-Funktion
Die VBA StrConv-Funktion kann Buchstaben in einem Text oder einer Zeichenkette in Großbuchstaben, Kleinbuchstaben, Eigennamen oder Unicode umwandeln, je nachdem, welche Art der Umwandlung Sie angeben. Die Syntax der VBA StrConv-String-Funktion lautet: StrConv(Zeichenkette, Umwandlung, [LCID]) wobei:
- Zeichenkette – Der ursprüngliche Text.
- Umwandlung – Die gewünschte Art der Umwandlung.
- [LCID](Optional) – Ein optionaler Parameter, der die LocaleID angibt. Wenn er leer ist, wird die System-LocaleID verwendet.
Der folgende Code zeigt Ihnen, wie Sie die String-Funktion StrConv verwenden können, um die Zeichenkette in die richtige Groß- und Kleinschreibung umzuwandeln:
Sub VerwendungStrConvStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "this is THE product"
WertZwei = StrConv(WertEins, vbProperCase)
MsgBox WertZwei
End Sub
Das Ergebnis ist:
Sie geben die Art der Umwandlung, die Sie durchführen möchten, mit dem Umwandlungsparameter an:
- vbLowerCase wandelt alle Buchstaben des Textes in Kleinbuchstaben um.
- vbUpperCase wandelt alle Buchstaben des Textes in Großbuchstaben um.
- vbProperCase wandelt den ersten Buchstaben jedes Wortes im Text in Großbuchstaben um, während alle anderen Buchstaben als Kleinbuchstaben beibehalten werden.
- vbUnicode wandelt eine Zeichenkette in Unicode um.
- vbFromUnicode wandelt eine Zeichenkette von Unicode in die Standard-Codepage des Systems um.
Vergleich von Zeichenketten
Die VBA-StrComp-Funktion
Mit der VBA-StrComp-Stringfunktion können Sie zwei Zeichenketten vergleichen. Die Funktion gibt zurück:
- 0 wenn die beiden Zeichenketten übereinstimmen
- -1 wenn Zeichenkette1 kleiner als Zeichenkette2 ist
- 1, wenn Zeichenkette1 größer ist als Zeichenkette2
- Ein Nullwert, wenn eine der beiden Zeichenketten Null war
Der folgende Code zeigt Ihnen, wie Sie die StrComp-Funktion verwenden, um zwei Zeichenketten zu vergleichen:
Sub VerwendungStrCompStringFunktion()
Dim WertEins As String
Dim WertZwei As String
Dim VergleichErgebnis As Integer
WertEins = "AutomateExcel"
WertZwei = "AutomateExcel"
VergleichErgebnis = StrComp(WertEins, WertZwei)
Debug.Print VergleichErgebnis
End Sub
Das Ergebnis ist:
Die Funktion StrComp hat eine exakte Übereinstimmung zwischen den beiden Zeichenketten gefunden und 0 zurückgegeben.
Der VBA-Like-Operator
Mit dem VBA-Like-Operator können Sie einen Text oder eine Zeichenkette mit einem Muster vergleichen und feststellen, ob es eine Übereinstimmung gibt. Normalerweise wird der Like-Operator in Verbindung mit Platzhaltern verwendet. Der folgende Code zeigt Ihnen, wie Sie den Like-Operator verwenden können:
Sub VerwendungLikeOperatorInVBA()
Dim WertEins As String
WertEins = "Let's view the output"
If WertEins Like "*view*" Then
MsgBox "There is a match, this string contains the word view"
Else
MsgBox "No match was found"
End If
End Sub
Das Ergebnis ist:
Die Platzhalter, die Sie mit dem Like-Operator verwenden können, um Musterübereinstimmungen zu finden, umfassen:
- ? die mit einem einzelnen Zeichen übereinstimmt
- #, der mit einer einzelnen Ziffer übereinstimmt
- * der auf null oder mehr Zeichen zutrifft
Der folgende Code zeigt Ihnen, wie Sie den Like-Operator und den Platzhalter ? verwenden können, um ein Muster in Ihrem Code zu finden:
Sub VerwendungLikeOperatorMitWildcardInVBA()
Dim WertEins As String
WertEins = "The"
If WertEins Like "??e" Then
MsgBox "There is a match, a matching pattern was found"
Else
MsgBox "No match was found"
End If
End Sub
Das gelieferte Ergebnis ist:
Andere nützliche VBA-String-Funktionen
Die VBA-Funktion Replace String
Die VBA-Replace-Function ersetzt eine Reihe von Zeichen in einer Zeichenkette durch eine andere Reihe von Zeichen. Die Syntax der VBA Replace-String-Funktion lautet: Replace(Zeichenkette, Finden, Ersetzen, [Start], [Zaehlung], [Vergleich]) wobei:
- Zeichenfolge – Der ursprüngliche Text.
- Finden – Die Teilzeichenkette, nach der im Originaltext gesucht werden soll.
- Ersetzen – Die Teilzeichenkette, durch die die gefundene Teilzeichenkette ersetzt werden soll.
- Start(Optional) – Die Position, an der die Suche im Originaltext beginnen soll. Ist der Wert leer, wird der Wert 1 verwendet und die Funktion beginnt an der ersten Zeichenposition.
- Anzahl(Optional) – Die Anzahl der Vorkommen der gesuchten Teilzeichenkette im Originaltext, die ersetzt werden sollen. Wenn der Wert leer ist, werden alle Vorkommen der gefundenen Teilzeichenkette ersetzt.
- Vergleichen(Optional) – Gibt die Art des Vergleichs an, der durchgeführt werden soll. Wenn das Feld leer ist, wird der Binärvergleich verwendet.
-vbBinaryCompare – Binärer Vergleich
-
-vbTextCompare – Textvergleich
-
-vbDatabaseCompare – Datenbankvergleich (Diese Option wird nur in Microsoft Access verwendet und ist ein Vergleich auf der Grundlage der Datenbank)
Der folgende Code zeigt Ihnen, wie Sie die Replace String Function verwenden können:
Sub VerwendungReplaceStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "ProductABC"
WertZwei = Replace(WertEins, "ABC", "XYZ")
MsgBox WertZwei
End Sub
Das Ergebnis ist:
Die Replace-Funktion hat die Teilzeichenkette ABC in ProductABC gefunden und sie durch die Teilzeichenkette XYZ ersetzt.
Die VBA-StrReverse-Funktion
Die VBA StrReverse-Funktion kehrt die Zeichen in einem gegebenen Text oder einer Zeichenkette um. Die Syntax der VBA-StrReverse-String-Funktion lautet: StrReverse(Zeichenkette) wobei:
- Zeichenkette – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die VBA-StrReverse-Funktion verwenden, um die Zeichen in der Zeichenfolge Product umzukehren:
Sub VerwendungStrReverseStringFunktion()
Dim WertEins As String
Dim WertZwei As String
WertEins = "Product"
WertZwei = StrReverse(WertEins)
MsgBox WertZwei
End Sub
Das Ergebnis ist:
Die VBA Len String Funktion
Die VBA Len-Funktion gibt die Anzahl der Zeichen in einer Textzeichenfolge zurück. Die Syntax der VBA-Len-String-Funktion lautet: Len(Zeichenkette) wobei:
- Zeichenkette – Der ursprüngliche Text.
Der folgende Code zeigt Ihnen, wie Sie die Funktion Len String verwenden, um die Länge der Zeichenkette AutomateExcel zu bestimmen:
Sub VerwendungLenFunktion()
Dim WertEins As String
Dim stringLaenge As Integer
WertEins = "AutomateExcel"
stringLaenge = Len(WertEins)
Debug.Print stringLaenge
End Sub
Das Ergebnis ist:
Die Funktion Len hat alle Zeichen im Text AutomateExcel gezählt. Das sind 13 Buchstaben.