Return to VBA Code Examples

VBA – Die Funktion Ersetzen – Zeichenkette ersetzen

In diesem Tutorial zeigen wir Ihnen, wie Sie die VBA-Funktion Replace zum Ersetzen von Textzeichenketten verwenden können.

Die Replace-Funktion

Die VBA-Funktion Replace ersetzt eine Teilzeichenkette durch eine andere.

Sub Replace_Beispiel_1()
MsgBox Replace("ABCABCABC", "A", "!")    
'Das Ergebnis lautet: "!BC!BC!BC"
MsgBox Replace("Ich mag rosa, rot und schwarz", "rosa", "lila")
'Das Ergebnis lautet: "Ich mag lila, rot und schwarz"
MsgBox Replace("A, B, C, A, B, C, A, B, C", ", ", ",")
'Das Ergebnis lautet: "A,B,C,A,B,C,A,B,C"

MsgBox Replace("ABCABCABC", "ABC", "!")
'Das Ergebnis lautet: "!!!"
MsgBox Replace("ABCABCABC", "ABc", "!")
'Das Ergebnis lautet: "ABCABCABC"
MsgBox Replace("ABCABCABC", "ZBC", "!")
'Das Ergebnis lautet: "ABCABCABC"

End Sub

Anfangsposition

Durch Zuweisung einer Anfangsposition können Sie angeben, mit welcher Zeichenposition begonnen werden soll (Standard = 1).

Sub Replace_Beispiel_2()
MsgBox Replace("ABCABCABC", "A", "123") 'Das Ergebnis lautet: "123BC123BC123BC"
MsgBox Replace("ABCABCABC", "A", "123", 2) 'Das Ergebnis lautet: "BC123BC123BC"
MsgBox Replace("ABCABCABC", "A", "123", 7) 'Das Ergebnis lautet: "123BC"
MsgBox Replace("ABCABCABC", "A", "123", 8) 'Das Ergebnis lautet: "BC"

MsgBox Replace("ABCABCABC", "ABC", "!@") 'Das Ergebnis lautet: "!@!@!@"
MsgBox Replace("ABCABCABC", "ABC", "!@", 2) 'Das Ergebnis lautet: "BC!@!@"
MsgBox Replace("ABCABCABC", "ABC", "!@", 6) 'Das Ergebnis lautet: "C!@"
MsgBox Replace("ABCABCABC", "ABC", "!@", 7) 'Das Ergebnis lautet: "!@"
MsgBox Replace("ABCABCABC", "ABC", "!@", 8) 'Das Ergebnis lautet: "BC"

End Sub

Nur einige Vorkommen ersetzen

Sie können auch angeben, wie viele Vorkommen der Teilzeichenkette ersetzt werden sollen (Standardwert = Alle)

Sub Replace_Beispiel_3()
MsgBox Replace("ABCABCABC", "A", "12") 'Das Ergebnis lautet: "12BC12BC12BC"
MsgBox Replace("ABCABCABC", "A", "12", , 1) 'Das Ergebnis lautet: "12BCABCABC"
MsgBox Replace("ABCABCABC", "A", "12", , 2) 'Das Ergebnis lautet: "12BC12BCABC"
MsgBox Replace("ABCABCABC", "A", "12", , 3) 'Das Ergebnis lautet: "12BC12BC12BC"
MsgBox Replace("ABCABCABC", "A", "12", , 5) 'Das Ergebnis lautet: "12BC12BC12BC"

MsgBox Replace("ABCABCABC", "A", "12", 3, 1)
'Das Ergebnis lautet: "C12BCABC"
'Wir haben A durch 12 ersetzt, und zwar 1 Mal ab Position 3 in der ursprünglichen Zeichenkette.

End Sub

Zwischen Groß- und Kleinschreibung unterscheiden

Die Replace-Funktion unterscheidet standardmäßig zwischen Groß- und Kleinschreibung. Durch Hinzufügen des optionalen Parameters (vbTextCompare) können Sie die Groß-/Kleinschreibung außer Acht lassen. Hier müssen Sie auch die Anfangsposition der Suche festlegen.

Sub Replace_Beispiel_4()
MsgBox Replace("ABcABCABc", "ABc", "12")
'Das Ergebnis lautet: "12ABC12"
MsgBox Replace("ABcABCABc", "ABc", "12", , , vbTextCompare)
'Das Ergebnis lautet: "121212"
'Wenn wir vbTextCompare verwenden, müssen wir die 2 anderen optionalen Argumente hinzufügen:
'start und count

MsgBox Replace("ABcABCABcABc", "ABc", "12", 3, 1)
'Das Ergebnis lautet: "cABC12ABc"
'Angefangen bei Position 3 und ABC nur 1 Mal ersetzt.

End Sub

Sie können auch ein Ersetzen ohne Berücksichtigung der Groß-/Kleinschreibung durchführen, indem Sie Option Compare Text am Anfang Ihres Moduls hinzufügen:

Option Compare Text

Doppelte Anführungszeichen

Die Replace-Funktion kann die doppelten Anführungszeichen, die den Anfang und das Ende einer Zeichenkette markieren, ersetzen.

Die VBA-Funktion Chr kann ein Zeichen anhand seiner Nummer im Zeichensatz zurückgeben.

MsgBox Chr (34) 'Das Ergebnis lautet "

Oder

MsgBox Chr (64) 'Das Ergebnis lautet: @

Doppelte Anführungszeichen können innerhalb der Replace-Funktion mit „“““ oder der VBA-Funktion Chr (34) verwendet werden.

Sub Replace_Beispiel_5()
Dim StrEx As String

StrEx = "AB""AB"""
MsgBox StrEx 'Das Ergebnis lautet: AB "AB"

MsgBox Replace(StrEx, Chr (34), "12")
'Das Ergebnis lautet: AB12AB12

MsgBox Replace(StrEx, """", "DQ")
'Das Ergebnis lautet: "ABDQABDQ"

End Sub

Ersetzen des Zeilenumbruchs in einer Zelle

Die Replace-Funktion kann das Sonderzeichen für den Zeilenumbruch in einer Zelle finden und es entfernen oder durch ein Leerzeichen ersetzen. Das Sonderzeichen für den Zeilenumbruch kann mit der Tastenkombination Alt+Eingabe in eine Zelle eingegeben und mit der Funktion Chr (10) im VBA-Code anhand seiner Zeichensatznummer verwendet werden.

vba replace zeilenumbruch leerzeichen

 

Sub Replace_Beispiel_6()
Dim StrEx As String 'Eine String-Variable definieren

'Den Wert der Zelle A2 im Arbeitsblatt Tabelle1 lesen
StrEx = ThisWorkbook.Worksheets("Tabelle1").Range("A2").Value

'Das Zeichen für den Zeilenumbruch, das mit Alt+Enter eingegeben wird, ist Chr (10) und ist unsichtbar.
'Diese Codezeile ersetzt dieses Zeichen durch ein Leerzeichen
StrEx = Replace(StrEx, Chr (10), " ")

'Den Ersatzwert in Zelle B2 im Arbeitsblatt Tabelle1
ThisWorkbook.Worksheets("Tabelle1").Range("B2").Value = StrEx

End Sub
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples