Excel VBA – Zeichen ersetzen mit Replace

Excel VBA - Zeichen ersetzen mit Replace
Excel VBA – Zeichen ersetzen mit Replace
5 Sterne
4 Bewertungen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
In diesem How-To zeige ich Ihnen die Replace Funktion. Damit können wir in einem VBA Makro einzelne Zeichen in einer Zeichenkette ersetzen.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Schauen wir uns als Beispiel die folgende Tabelle an.
Ausgangstabelle
In dieser wollen wir alle Schrägstriche durch Bindestriche ersetzen. Dazu legen wir ein VBA Makro an. Wechseln Sie mit der Tastenkombination ALT+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein.
Als Erstes legen wir eine Variable für die Schleife an. Die Deklaration sieht wie folgt aus:

Sub Ersetzen()
Dim Zelle As Range

End Sub

Danach schreiben wir eine Schleife um alle Zellen in dem verwendeten Bereich zu überprüfen. Diese arbeitet alle Zellen, Zelle für Zelle, ab.

Sub Ersetzen()
Dim Zelle As Range

For Each Zelle In Tabelle1.UsedRange

Next Zelle
End Sub

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Innerhalb der Schleife modifizieren wir dann den jeweiligen Zellwert mithilfe der Replace Funktion. Im ersten Argument geben wir an, wo die Zeichen ersetzt werden sollen. Danach geben wir das zu ersetzende Zeichen an. Schließlich geben wir das Ersatzzeichen an. Das finale Coding sieht dann wie folgt aus:

Sub Ersetzen()
Dim Zelle As Range

For Each Zelle In Tabelle1.UsedRange

Zelle.Value = Replace(Zelle.Value, "/", "-")

Next Zelle
End Sub

Alternativ können Sie auch statt der Funktion die Replace Methode nutzen. (Danke an Ralf für den Tipp.) Damit erübrigt sich die Schleife und die Performance steigt. Das Coding würde dann so aussehen:

Sub ErsetzenAlternative()

Tabelle1.UsedRange.Replace "/", "-", xlPart

End Sub

Führen Sie nun das Makro mit der F5 Taste aus. Alle Zeichen wurden ersetzt.
Alle Zeichen wurden ersetzt
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Replace Methode
Replace Funktion
Bernd Held – VBA mit Excel: Das umfassende Handbuch

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

5 Kommentare
  1. Ralf
    Ralf says:

    Moin!
    Ich empfinde die Replace-Funktion als hier nicht zielführend.
    Sowas erschlägt die Range.Replace-Methode in einem Rutsch, so ganz ohne Schleife und als Einzeiler:
    Tabelle1.Columns(„A“).Replace „/“, „-„, xlPart

    Freundliche Grüße
    Ralf

    Antworten

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen