VBA-Strings und Substrings-Funktionen

VBA verfügt über viele Zeichenfolgenfunktionen, mit denen Sie Text und Zeichenfolgen in Ihrem Code bearbeiten und bearbeiten können. In diesem Tutorial werden Funktionen behandelt, mit denen Sie Teilstrings aus Strings extrahieren, Leerzeichen aus Strings entfernen, die Groß-/Kleinschreibung eines Textes oder Strings konvertieren, Strings vergleichen und andere nützliche Stringfunktionen.

Extrahieren einer Teilzeichenfolge

Die linke VBA-String-Funktion

Mit der VBA-Linksfunktion können Sie eine Teilzeichenfolge aus einem Text oder einer Zeichenfolge von der linken Seite beginnend extrahieren. Die Syntax der VBA-Links-String-Funktion lautet:

Left(String, Num_of_characters) wobei:

  • String - Der Originaltext.
  • Anzahl_von_Zeichen - Eine ganze Zahl, die die Anzahl der Zeichen angibt, die von Anfang an aus dem Originaltext extrahiert werden sollen.

Der folgende Code zeigt Ihnen, wie Sie die Left String Function verwenden, um die ersten vier Zeichen der angegebenen Zeichenfolge zu extrahieren:

1234567891011 Sub UsingTheLeftStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "AutomateExcel"valueTwo = Left(valueOne, 4)MsgBox-WertZweiEnd Sub

Das Ergebnis ist:

Die Left Function hat die ersten vier Buchstaben von AutomateExcel extrahiert, die Auto sind.

Die rechte VBA-String-Funktion

Die VBA-Rechtsfunktion ermöglicht es Ihnen, eine Teilzeichenfolge aus einem Text oder einer Zeichenfolge zu extrahieren, beginnend von der rechten Seite. Die Syntax der VBA Right String Function lautet:

Right(String, Num_of_characters) wobei:

  • String - Der Originaltext.
  • Anzahl_von_Zeichen - Eine ganze Zahl, die die Anzahl der Zeichen angibt, die aus dem Originaltext beginnend am Ende extrahiert werden sollen.

Der folgende Code zeigt Ihnen, wie Sie mit der Right String Function die letzten vier Zeichen der Zeichenfolge extrahieren:

1234567891011 Sub UsingTheRightStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "AutomateExcel"valueTwo = Right(valueOne, 4)MsgBox-WertZweiEnd Sub

Das Ergebnis ist:

Die Right Function 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 Teilzeichenfolge aus einem Text oder einer Zeichenfolge extrahieren, beginnend an einer beliebigen Position innerhalb der von Ihnen angegebenen Zeichenfolge. Die Syntax der VBA-Mid-String-Funktion lautet:

Mid(String, Starting_position, [Num_of_characters]) wobei:

  • String - Der Originaltext.
  • Starting_position - Die Position im Originaltext, an der die Funktion mit dem Extrahieren beginnt.
  • Anzahl_von_Zeichen (Optional) - Eine ganze Zahl, die die Anzahl der aus dem Originaltext zu extrahierenden Zeichen angibt, beginnend mit der Starting_position. Wenn leer, gibt die MID-Funktion alle Zeichen aus der Starting_position zurück.

Der folgende Code zeigt Ihnen, wie Sie die Mid String Function verwenden, um vier Zeichen zu extrahieren, beginnend mit der zweiten Position oder dem zweiten Zeichen in der Zeichenfolge:

1234567891011 Sub UsingTheMidStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "AutomateExcel"valueTwo = Mid(valueOne, 2, 4)MsgBox-WertZweiEnd Sub

Das Ergebnis wird an eine msgbox ausgegeben:

Die Mid-Funktion hat die vier Buchstaben von AutomateExcel extrahiert, beginnend mit dem zweiten Zeichen/Position/Buchstaben, die utom sind.

Ermitteln der Position eines Teilstrings

Die VBA-Instr-String-Funktion

Die VBA Instr-Funktion gibt die Startposition einer Teilzeichenfolge innerhalb einer anderen Zeichenfolge zurück. Bei dieser Funktion muss die Groß-/Kleinschreibung beachtet werden. Die Syntax der VBA-Instr-String-Funktion lautet:

Instr([Start], String, Substring, [Compare]) wobei:

  • Start (Optional) - Dies gibt die Startposition für die Funktion an, von der aus gesucht werden soll. Wenn leer, wird der Standardwert 1 verwendet.
  • String - Der Originaltext.
  • Teilzeichenfolge- Die Teilzeichenfolge im Originaltext, deren Position Sie suchen möchten.
  • Vergleichen (Optional)- Dies gibt die Art des durchzuführenden Vergleichs an. Wenn leer, wird ein binärer Vergleich verwendet.

-vbBinaryCompare - Binärvergleich (Groß- und Kleinschreibung werden als unterschiedlich angesehen)
-vbTextCompare - Textvergleich (Groß- und Kleinschreibung werden als gleich angesehen)
-vbDatabaseCompare - Datenbankvergleich (Diese Option wird nur in Microsoft Access verwendet und ist ein Vergleich basierend auf der Datenbank)

Der folgende Code zeigt Ihnen, wie Sie mit der Instr String-Funktion das erste Vorkommen der Teilzeichenfolge „Th“ innerhalb der Hauptzeichenfolge ermitteln:

123456789101112 Sub UsingTheInstrStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Das ist der Text"positionofSubstring = InStr(1, valueOne, "Th")Debug.Print positionofSubstringEnd Sub

Das Ergebnis (im Direktfenster ausgegeben) ist:

Die Instr-Funktion hat die Position des ersten Vorkommens der Teilzeichenfolge „Th“ zurückgegeben, die 1 ist. Beachten Sie, dass diese Funktion die Leerzeichen in die Zählung einbezieht.

Die VBA InstrRev String-Funktion

Die VBA InstrRev-Funktion gibt die Startposition einer Teilzeichenfolge innerhalb einer anderen Zeichenfolge zurück, beginnt jedoch mit dem Zählen der Position ab dem Ende der Zeichenfolge. Bei dieser Funktion muss die Groß-/Kleinschreibung beachtet werden. Die Syntax der VBA InstrRev String-Funktion lautet:

InstrRev(String, Substring, [Start], [Compare]) wobei:

  • String - Der Originaltext.
  • Teilzeichenfolge- Die Teilzeichenfolge im Originaltext, deren Position Sie suchen möchten.
  • Start (Optional) - Dies gibt die Position an, von der aus die Suche gestartet werden soll. Wenn leer, beginnt die Funktion mit der Suche ab dem letzten Zeichen.
  • Vergleichen (Optional)- Dies gibt die Art des durchzuführenden Vergleichs an. Wenn leer, wird ein binärer Vergleich verwendet.

-vbBinaryCompare - Binärvergleich (Groß- und Kleinschreibung werden als unterschiedlich angesehen)
-vbTextCompare - Textvergleich (Groß- und Kleinschreibung werden als gleich angesehen)
-vbDatabaseCompare - Datenbankvergleich (Diese Option wird nur in Microsoft Access verwendet und ist ein Vergleich basierend auf der Datenbank)

Der folgende Code zeigt Ihnen, wie Sie die InstrRev String Function verwenden, um das erste Vorkommen der Teilzeichenfolge „Th“ innerhalb der Hauptzeichenfolge beginnend am Ende der Zeichenfolge zu bestimmen:

1234567891011 Sub UsingTheInstrRevStringFunction()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Das ist der Text"positionofSubstring = InStrRev(valueOne, "Th")Debug.Print positionofSubstringEnd Sub

Das Ergebnis wird im Direktfenster ausgegeben:

Die InstrRev-Funktion hat die Position des ersten Vorkommens der Teilzeichenfolge „Th“ zurückgegeben, aber die Zählung beginnt am Ende, das 9 ist. Beachten Sie, dass diese Funktion die Leerzeichen in die Zählung einbezieht.

Leerzeichen aus einer Zeichenfolge entfernen

Die VBA LTrim String-Funktion

Die VBA LTrim-Funktion entfernt alle führenden Leerzeichen aus einem Text oder einer Zeichenfolge. Die Syntax der VBA-LTrim-String-Funktion lautet:

LTrim(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie die VBA-LTrim-Funktion verwenden, um die führenden Leerzeichen in der angegebenen Zeichenfolge zu entfernen:

123456789101112 Sub UsingTheLTrimStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = " Dies ist die Website-Adresse https://easyexcel.net/excel/"valueTwo = LTrim(valueOne)MsgBox-WertEinsMsgBox-WertZweiEnd Sub

Die Ergebnisse sind:

Die LTrim-Funktion hat die führenden Leerzeichen für valuetwo entfernt, was in der zweiten Message Box angezeigt wird.

Die VBA RTrim String-Funktion

Die VBA RTrim-Funktion entfernt alle abschließenden Leerzeichen aus einem Text oder einer Zeichenfolge. Die Syntax der VBA-RTrim-String-Funktion lautet:

RTrim(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie die VBA-RTrim-Funktion verwenden, um die abschließenden Leerzeichen in der angegebenen Zeichenfolge zu entfernen:

123456789101112 Sub UsingTheRTrimStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "Dies ist die Website-Adresse https://easyexcel.net/excel/ "valueTwo = RTrim(valueOne)MsgBox-WertEinsMsgBox-WertZweiEnd Sub

Die gelieferten Ergebnisse sind:

Die RTrim-Funktion hat die abschließenden Leerzeichen für valuetwo entfernt, was in der zweiten Message Box angezeigt wird.

Die VBA Trim String-Funktion

Die VBA-Trimfunktion entfernt alle führenden und abschließenden Leerzeichen aus einem Text oder einer Zeichenfolge. Die Syntax der VBA Trim String Function lautet:

Trim(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie die VBA-Trimfunktion verwenden, um die führenden und nachgestellten Leerzeichen in der angegebenen Zeichenfolge zu entfernen:

123456789101112 Sub UsingTheTrimStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = " Dies ist die Website-Adresse https://easyexcel.net/excel/ "valueTwo = Trim(valueOne)MsgBox-WertEinsMsgBox-WertZweiEnd Sub

Die Ergebnisse sind:

Die Trim-Funktion hat die führenden und nachgestellten Leerzeichen für valuetwo entfernt, was in der zweiten Message Box angezeigt wird.

VBA-Case-Funktionen

Die VBA LCase String-Funktion

Die VBA LCase-Funktion konvertiert Buchstaben in einem Text oder einer Zeichenfolge in Kleinbuchstaben. Die Syntax der VBA LCase String Function lautet:

LCase(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie die LCase String Function verwenden, um alle Buchstaben in der angegebenen Zeichenfolge in Kleinbuchstaben umzuwandeln:

1234567891011 Sub UsingTheLCaseStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "DAS IST DAS PRODUKT"valueTwo = LCase(valueOne)MsgBox-WertZweiEnd Sub

Das Ergebnis ist:

Die LCase-Funktion hat alle Buchstaben in der Zeichenfolge in Kleinbuchstaben umgewandelt.

Die VBA UCase String-Funktion

Die VBA UCase-Funktion konvertiert Buchstaben in einem Text oder einer Zeichenfolge in Großbuchstaben. Die Syntax der VBA UCase String Function lautet:

UCase(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie die UCase String Function verwenden, um alle Buchstaben in der angegebenen Zeichenfolge in Großbuchstaben umzuwandeln:

1234567891011 Unter UsingTheUCaseStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "das ist das Produkt"WertZwei = UCase(WertEins)MsgBox-WertZweiEnd Sub

Das Ergebnis ist:

Die UCase-Funktion hat alle Buchstaben in der Zeichenfolge in Großbuchstaben umgewandelt.

Die VBA StrConv-Funktion

Die VBA-StrConv-Funktion kann Buchstaben in einem Text oder einer Zeichenfolge in Großbuchstaben, Kleinbuchstaben, richtige Großbuchstaben oder Unicode konvertieren, abhängig von der von Ihnen angegebenen Konvertierungsart. Die Syntax der VBA-StrConv-String-Funktion lautet:

StrConv(String, Conversion, [LCID]) wobei:

  • String - Der Originaltext.
  • Konvertierung - Der gewünschte Konvertierungstyp.
  • [LCID] (Optional) -Ein optionaler Parameter, der die LocaleID angibt. Wenn leer, wird die LocaleID des Systems verwendet.

Der folgende Code zeigt Ihnen, wie Sie die String-Funktion StrConv verwenden, um die Zeichenfolge in die richtige Groß-/Kleinschreibung zu konvertieren:

1234567891011 Sub UsingTheStrConvStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "das ist DAS Produkt"valueTwo = StrConv(valueOne, vbProperCase)MsgBox-WertZweiEnd Sub

Das Ergebnis ist:

Die Art der Konvertierung, die Sie durchführen möchten, geben Sie mit dem Konvertierungsparameter an:

  • vbLowerCase wandelt alle Buchstaben im Text in Kleinbuchstaben um.
  • vbUpperCase wandelt alle Buchstaben im Text 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 konvertiert einen String in Unicode.
  • vbFromUnicode konvertiert einen String von Unicode in die Standardcodepage des Systems.

Vergleichen von Strings

Die VBA-StrComp-Funktion

Mit der VBA-StrComp-String-Funktion können Sie zwei Strings vergleichen. Die Funktion gibt zurück:

  • 0 wenn die beiden Strings übereinstimmen
  • -1 wenn string1 kleiner ist als string2
  • 1 wenn string1 größer ist als string2
  • Ein Nullwert, wenn einer der Strings Null war

Der folgende Code zeigt Ihnen, wie Sie die StrComp-Funktion verwenden, um zwei Zeichenfolgen zu vergleichen:

123456789101112 Sub UsingTheStrCompStringFunction()Dim valueOne As StringDim valueTwo As StringDim resultofComparison As IntegervalueOne = "AutomateExcel"valueTwo = "Excel automatisieren"resultofComparison = StrComp(valueOne, valueTwo)Debug.Ergebnis des Vergleichs druckenEnd Sub

Das Ergebnis ist:

Die StrComp-Funktion hat eine genaue Übereinstimmung zwischen den beiden Strings gefunden und 0 zurückgegeben.

Der VBA-ähnliche Operator

Mit dem VBA-ähnlichen Operator können Sie einen Text oder eine Zeichenfolge mit einem Muster vergleichen und feststellen, ob eine Übereinstimmung vorliegt. Normalerweise würden Sie den Like-Operator in Verbindung mit Wildcards verwenden. Der folgende Code zeigt Ihnen, wie Sie den Like-Operator verwenden:

123456789101112 Sub UsingTheLikeOperatorInVBA()Dim valueOne As StringvalueOne = "Lass uns die Ausgabe ansehen"Wenn valueOne Like "*view*" ThenMsgBox "Es gibt eine Übereinstimmung, diese Zeichenfolge enthält das Wort Ansicht"AndersMsgBox "Es wurde keine Übereinstimmung gefunden"Ende WennEnd Sub

Das Ergebnis ist:

Die Platzhalter, die Sie mit dem Like-Operator verwenden können, um nach Musterübereinstimmungen zu suchen, umfassen:

  • ? was einem einzelnen Zeichen entspricht
  • # was einer einzelnen Ziffer entspricht
  • * was mit null oder mehr Zeichen übereinstimmt

Der folgende Code zeigt Ihnen, wie Sie den Like-Operator und das ? Platzhalter, um einem Muster in Ihrem Code zu entsprechen:

123456789101112 Sub UsingTheLikeOperatorWithAWildcardInVBA()Dim valueOne As StringvalueOne = "Der"Wenn valueOne Like "??e" ThenMsgBox "Es gibt eine Übereinstimmung, ein passendes Muster wurde gefunden"AndersMsgBox "Es wurde keine Übereinstimmung gefunden"Ende WennEnd Sub

Das gelieferte Ergebnis ist:

Andere nützliche VBA-String-Funktionen

Die VBA-Funktion zum Ersetzen von Zeichenfolgen

Die VBA-Ersetzungsfunktion ersetzt einen Zeichensatz in einer Zeichenfolge durch einen anderen Zeichensatz. Die Syntax der VBA-Ersetzungszeichenfolgenfunktion lautet:

Ersetzen(String, Suchen, Ersetzen, [Start], [Anzahl], [Vergleichen]) wobei:

  • String - Der Originaltext.
  • Suchen – Die Teilzeichenfolge, nach der im Originaltext gesucht werden soll.
  • Ersetzen - Die Teilzeichenfolge, durch die die Such-Teilzeichenfolge ersetzt werden soll.
  • Start (Optional)- Die Position, an der die Suche im Originaltext beginnen soll. Wenn leer, wird der Wert 1 verwendet und die Funktion beginnt an der ersten Zeichenposition.
  • Zählen (Optional)- Die Anzahl der Vorkommen der Teilzeichenfolge Suchen im zu ersetzenden Originaltext. Wenn es leer ist, werden alle Vorkommen der Teilzeichenfolge Suchen ersetzt.
  • Vergleichen (Optional)- Dies gibt die Art des durchzuführenden Vergleichs an. Wenn leer, wird ein binärer Vergleich verwendet.

    -vbBinaryCompare - Binärvergleich
    -vbTextCompare - Textvergleich
    -vbDatabaseCompare - Datenbankvergleich (Diese Option wird nur in Microsoft Access verwendet und ist ein Vergleich basierend auf der Datenbank.)

Der folgende Code zeigt Ihnen, wie Sie die Funktion zum Ersetzen von Zeichenfolgen verwenden:

1234567891011 Sub UsingTheReplaceStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "ProduktABC"valueTwo = Ersetzen(valueOne, "ABC", "XYZ")MsgBox-WertZweiEnd Sub

Das Ergebnis ist:

Die Ersetzen-Funktion hat die Teilzeichenfolge ABC in ProductABC gefunden und durch die Teilzeichenfolge XYZ ersetzt.

Die VBA StrReverse-Funktion

Die VBA-StrReverse-Funktion kehrt die Zeichen in einem bestimmten Text oder String um. Die Syntax der VBA-StrReverse-String-Funktion lautet:

StrReverse(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie die VBA-StrReverse-Funktion verwenden, um die Zeichen in der Zeichenfolge Product umzukehren:

1234567891011 Sub UsingTheStrReverseStringFunction()Dim valueOne As StringDim valueTwo As StringvalueOne = "Produkt"valueTwo = StrReverse(valueOne)MsgBox-WertZweiEnd 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(String) wobei:

  • String - Der Originaltext.

Der folgende Code zeigt Ihnen, wie Sie mit der Len String Function die Länge des Strings AutomateExcel bestimmen:

1234567891011 Unter UsingTheLenFunction()Dim valueOne As StringDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len(valueOne)Debug.Print stringLengthEnd Sub

Das Ergebnis ist:

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

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave