VBA – Die Funktion Ersetzen – Zeichenkette ersetzen

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 24, 2022

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