Rückkehr in VBA-Code-Beispiele

VBA-Funktionen für Zeichenketten und Teilzeichenketten

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:

verwendung left string funktion vba

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_ZeichenEine 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:

verwendung right string funktion vba

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:

verwendung mid string funktion vba

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:

verwendung instr funktion 300x106

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:

verwendung instr rev funktion 300x107

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:

meldungsbox mit fuehrenden leerzeichen 300x106

verwendung ltrim string funktion 300x118

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:

meldungsbox mit leerzeichen am ende 300x100

verwendung rtrim string funktion 300x116

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:

meldungsbox-mit-leerzeichen-anfang-und-ende-300x96meldungsbox mit leerzeichen anfang und ende 300x96

verwendung trim funktion 300x115

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:

verwendung lcase funktion vba

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:

verwendung ucase funktion

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:

verwendung strconv funktion

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:

verwendung strcomp funktion 300x107

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:

verwendung like operator 300x137

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:

verwendung like operator musterabgleich 300x144

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:

verwendung replacestring funktion

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:

verwendung strreverse funktion

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:

verwendung Lenstring funktion 1 300x107

Die Funktion Len hat alle Zeichen im Text AutomateExcel gezählt. Das sind 13 Buchstaben.