Vba: so ersetzen sie zeichen in einer zeichenfolge
Sie können die Methode „Replace()“ in VBA verwenden, um Zeichen in einer Zeichenfolge zu ersetzen.
Diese Methode verwendet die folgende grundlegende Syntax:
Ersetzen (Ausdruck, Suchen, Ersetzen, Starten, Zählen)
Gold:
- Ausdruck : Die Zeichenfolge, in der Sie die Zeichen ersetzen möchten
- find : Die zu suchende Zeichenfolge
- ersetzen : Die Zeichenfolge, die als Ersatz verwendet werden soll
- start ( optional ) : Die Startposition in der Zeichenfolge, nach der gesucht werden soll
- count ( optional ) : Die Anzahl der durchzuführenden Ersetzungen
Die folgenden Beispiele zeigen, wie Sie diese Methode in der Praxis mit der folgenden Liste von Zeichenfolgen in Excel verwenden:
Beispiel 1: Verwenden Sie VBA, um alle Vorkommen von Zeichen in einer Zeichenfolge zu ersetzen (Groß-/Kleinschreibung beachten)
Nehmen wir an, wir möchten in jeder Zeichenfolge „this“ durch „THAT“ ersetzen.
Dazu können wir das folgende Makro erstellen:
Sub ReplaceChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(Range(" A " & i), " this ", " THAT ") Next i End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Spalte B zeigt alle Zeichenfolgen in Spalte A an, wobei jedes Vorkommen von „this“ durch „THAT“ ersetzt wird.
Beachten Sie, dass bei dieser Ersetzung die Groß-/Kleinschreibung beachtet wird.
Das heißt, jedes Vorkommen von „this“ wird ersetzt, aber jedes Vorkommen von „this“ bleibt in Ruhe.
Beispiel 2: Verwenden Sie VBA, um alle Vorkommen von Zeichen in einer Zeichenfolge zu ersetzen (ohne Berücksichtigung der Groß- und Kleinschreibung).
Nehmen wir an, wir möchten „this“ (unabhängig von der Groß-/Kleinschreibung) in jeder Zeichenfolge durch „THAT“ ersetzen.
Dazu können wir das folgende Makro erstellen:
Sub ReplaceChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ") Next i End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Spalte B zeigt alle Zeichenfolgen in Spalte A an, wobei jedes Vorkommen von „this“ durch „THAT“ ersetzt wird.
Beachten Sie, dass bei dieser Ersetzung die Groß-/Kleinschreibung nicht beachtet wird .
Das heißt, jedes Vorkommen von „this“ (ob groß geschrieben oder nicht) wird ersetzt.
Wir konnten diese Ersetzung ohne Berücksichtigung der Groß- und Kleinschreibung durchführen, indem wir mit der LCase- Methode zunächst jede Zeichenfolge in Spalte A in Kleinbuchstaben umwandelten, bevor wir in jeder Zeichenfolge nach „this“ suchten.
Beispiel 3: Verwenden Sie VBA, um die ersten N Vorkommen eines Zeichens in einer Zeichenfolge zu ersetzen
Angenommen, wir möchten in jeder Zeichenfolge nur das erste Vorkommen von „this“ (unabhängig von der Groß-/Kleinschreibung) durch „THAT“ ersetzen.
Dazu können wir das folgende Makro erstellen:
Sub ReplaceChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ", Count:=1) Next i End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Spalte B zeigt alle Zeichenfolgen in Spalte A an, wobei nur das erste Vorkommen von „this“ durch „THAT“ ersetzt wird.
Beachten Sie, dass wir Count:=1 verwendet haben, um nur das erste Vorkommen einer bestimmten Zeichenfolge zu ersetzen. Sie können 1 jedoch durch einen beliebigen Wert ersetzen, um die ersten n Vorkommen einer bestimmten Zeichenfolge zu ersetzen.
Hinweis : Die vollständige Dokumentation zur VBA- Replace -Methode finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben mit VBA ausführen:
VBA: So zählen Sie das Vorkommen von Zeichen in einer Zeichenfolge
VBA: So überprüfen Sie, ob eine Zeichenfolge eine andere Zeichenfolge enthält
VBA: So zählen Sie Zellen mit bestimmtem Text