In diesem Tutorial wird gezeigt, wie Sie die Funktion zum Ersetzen von VBA verwenden, um Textzeichenfolgen zu ersetzen.
Funktion ersetzen
Die VBA-Ersetzen-Funktion gibt eine Zeichenfolge mit vorgenommenen Ersetzungen zurück. Bei Verwendung optionaler Parameter kann der neue String an der durch start angegebenen Position beginnen und am Ende des ursprünglichen Strings enden.
VBA Ersetzen Ersetzen einer Teilzeichenfolge
Die VBA-Ersetzen-Funktion kann verwendet werden, um jede gefundene Teilzeichenfolge in jedem gefundenen Teil zu ersetzen.
12345678910111213141516 | Sub ReplaceExample_1()MsgBox Replace("ABCABCABC", "A", "!")'Ergebnis ist: "!BC!BC!BC"MsgBox Replace("Ich mag pink, rot und schwarz", "pink", "lila")'Ergebnis ist: "Ich mag Lila, Rot und Schwarz"MsgBox Replace("A, B, C, A, B, C, A, B, C", ", ", ",")'Ergebnis ist: "ABCABCABC"MsgBox Replace("ABCABCABC", "ABC", "!")'Ergebnis ist: "!!!"MsgBox Replace("ABCABCABC", "ABc", "!")'Ergebnis ist: "ABCABCABC"MsgBox Replace("ABCABCABC", "ZBC", "!")'Ergebnis ist: "ABCABCABC"End Sub |
VBA Startposition ersetzen
Die VBA-Ersetzen-Funktion kann verwendet werden, um jede gefundene Teilzeichenfolge in jedem gefundenen Teil zu ersetzen. Wenn wir eine Startposition zuweisen, wäre das Ergebnis der Teil der ursprünglichen Zeichenfolge nach diesem Startpunkt.
12345678910111213 | Sub ReplaceExample_2()MsgBox Replace("ABCABCABC", "A", "123") 'Ergebnis ist: "123BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 2) 'Ergebnis ist: "BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 7) 'Ergebnis ist: "123BC"MsgBox Replace("ABCABCABC", "A", "123", 8) 'Ergebnis ist: "BC"MsgBox Replace("ABCABCABC", "ABC", "!@") 'Ergebnis ist: "!@!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 2) 'Ergebnis ist: "BC!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 6) 'Ergebnis ist: "C!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 7) 'Ergebnis ist: "!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 8) 'Ergebnis ist: "BC"End Sub |
VBA ersetzt nur wenige Vorkommen
Die VBA-Ersetzen-Funktion kann verwendet werden, um jede gefundene Teilzeichenfolge in jedem gefundenen Teil zu ersetzen. Wir können optional entscheiden, wie viele Vorkommen ersetzt werden sollen.
123456789101112 | Sub ReplaceExample_3()MsgBox Replace("ABCABCABC", "A", "12") 'Ergebnis ist: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 1) 'Ergebnis ist: "12BCABCABC"MsgBox Replace("ABCABCABC", "A", "12", , 2) 'Ergebnis ist: "12BC12BCABC"MsgBox Replace("ABCABCABC", "A", "12", , 3) 'Ergebnis ist: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 5) 'Ergebnis ist: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", 3, 1)'Ergebnis ist: "C12BCABC"„Wir haben A durch 12 ersetzt, 1 Mal beginnend mit Position 3 der ursprünglichen Saite.End Sub |
VBA-Ersatz-Groß-/Kleinschreibung
Die VBA-Ersetzungsfunktion unterscheidet standardmäßig zwischen Groß- und Kleinschreibung. Sie können dieses Verhalten mithilfe eines optionalen Parameters (vbTextVergleichen). In diesem Fall müssen Sie auch die Startposition der Suche festlegen.
12345678910111213 | Sub ReplaceExample_4()MsgBox Replace("ABcABCABc", "ABc", "12")'Ergebnis ist: "12ABC12"MsgBox Replace("ABcABCABc", "ABc", "12", , , vbTextCompare)'Ergebnis ist: "121212"'Wenn wir vbTextCompare verwenden, müssen wir die 2 anderen optionalen Argumente hinzufügen:'starten und zählenMsgBox Replace("ABcABCABcABc", "ABc", "12", 3, 1)'Ergebnis ist: "cABC12ABc"'Ab Position 3 gestartet und ABC nur 1 Mal ersetzt.End Sub |
Sie können auch ein Ersetzen ohne Beachtung der Groß-/Kleinschreibung durchführen, indem Sie die Option Text vergleichen oben in Ihrem Modul hinzufügen:
1 | Option Text vergleichen |
VBA ersetzt doppelte Anführungszeichen
Die VBA Replace-Funktion kann die doppelten Anführungszeichen ersetzen, die verwendet werden, um den Anfang und das Ende einer Zeichenfolge zu begrenzen.
Die VBA Chr-Funktion kann ein Zeichen aus seiner Zahl im Zeichensatz zurückgeben.
1 | MsgBox Chr(34) 'Ergebnis ist: " |
Oder
1 | MsgBox Chr(64) 'Ergebnis ist: @ |
Doppelte Anführungszeichen können innerhalb der VBA-Ersetzungsfunktion mit „“““ oder der VBA-Funktion Chr(34) verwendet werden.
12345678910111213 | Sub ReplaceExample_5()Dim StrEx als StringStrEx = "AB""AB"""MsgBox StrEx 'Ergebnis ist: AB"AB"MsgBox Ersetzen(StrEx, Chr(34), "12")'Ergebnis ist: AB12AB12MsgBox Ersetzen(StrEx, """", "DQ")'Ergebnis ist: "ABDQABDQ"End Sub |
VBA ersetzt Bruchlinie in Zelle
Die VBA-Ersetzen-Funktion kann das Sonderzeichen der Bruchlinie in einer Zelle finden und es entfernen oder durch ein Leerzeichen ersetzen. Das Sonderzeichen für die Trennlinie kann mit der Tastenkombination Alt+Enter in eine Zelle eingegeben werden und kann in VBA-Code mit seiner Zeichensatznummer mit der VBA-Funktion Chr(10) verwendet werden.
1234567891011121314 | Sub ReplaceExample_6()Dim StrEx As String 'String-Variable definieren'Lesen Sie den Wert von Zelle A2 in Arbeitsblatt Sheet1StrEx = ThisWorkbook.Worksheets("Sheet1").Range("A2").Value'Das mit Alt+Enter eingegebene Umbruchzeichen ist Chr(10) und ist unsichtbar.'Diese Codezeile ersetzt dieses Zeichen durch ein LeerzeichenStrEx = Ersetzen(StrEx, Chr(10), " ")'Schreiben Sie den ersetzten Wert in Zelle B2 im Arbeitsblatt Sheet1ThisWorkbook.Worksheets("Sheet1").Range("B2").Value = StrExEnd Sub |