Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: replace Alternative wegen Wildcards

replace Alternative wegen Wildcards
05.06.2019 06:53:22
Mike
Hallo zusammen,
ich habe eine Liste mit mehreren 100 Einträgen.
Die Einträge sind wie folgt aufgebaut
W12345 - 12F Beschreibungstext XYZ
oder so
W12346 - Beschreibungstext XYZ
Ich wollte ursprünglich mit replace in etwa so vorgehen
ThisWorkbook.Sheets("WListe").UsedRange.Replace "W##### - ##F ", "", xlPart
ThisWorkbook.Sheets("WListe").UsedRange.Replace "W##### - ", "", xlPart
habe dann aber festgestellt, dass die Verwendung von Wildcards bei replace offensichtlich nicht möglich ist.
Wie kann ich in jeder Zeile, links von der Beschreibung den Part mit W##### oder W##### - ##F entfernen, sodass am Ende nur der reine Text der Beschreibung stehen bleibt?
Kann jemand helfen?
Gruß
Mike
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: replace Alternative wegen Wildcards
05.06.2019 07:04:35
Mike
Ich habe grade festgestellt, dass es wohl doch möglich ist mit Wildcards zu arbeiten.
Allerdings wohl nur mit "?". Hätte es zwar gerne mit # auf Zahlen festgelegt aber es muss wohl so reichen.
So funktioniert es jetzt auf jeden Fall
ThisWorkbook.Sheets("WListe").UsedRange.Replace "W? - ?F ", "", xlPart
ThisWorkbook.Sheets("WListe").UsedRange.Replace "W? - ", "", xlPart
Gruß
Mike
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Wildcards in Excel VBA: Ersetzen von Text mit Replace


Schritt-für-Schritt-Anleitung

Um bestimmte Teile eines Textes in einer Excel-Liste zu ersetzen, kannst du die Replace-Methode in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub ErsetzenMitWildcards()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("WListe")
    
       ' Ersetzen von Text mit Wildcards
       ws.UsedRange.Replace "W? - ?F ", "", xlPart
       ws.UsedRange.Replace "W? - ", "", xlPart
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Mit dieser Methode kannst du den gewünschten Text effektiv entfernen und nur die Beschreibung beibehalten.


Häufige Fehler und Lösungen

  • Fehler: "Syntaxfehler" beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass die Anführungszeichen korrekt sind und dass die Replace-Methode richtig aufgerufen wird.
  • Fehler: Nichts wird ersetzt.

    • Lösung: Überprüfe, ob die Wildcards korrekt verwendet werden. In VBA kannst du nur ? verwenden, um ein einzelnes Zeichen zu ersetzen. Das #-Symbol wird nicht unterstützt.

Alternative Methoden

Wenn du eine andere Methode ausprobieren möchtest, um Text in Excel zu ersetzen, kannst du die Funktionen Suchen und Ersetzen in Excel selbst nutzen:

  1. Markiere den Bereich, in dem du suchen möchtest.
  2. Drücke STRG + H, um das "Suchen und Ersetzen"-Dialogfeld zu öffnen.
  3. Gib im Feld "Suchen nach" den Text mit Wildcards ein, z. B. W? - ?F*.
  4. Lasse das Feld "Ersetzen durch" leer, um den Text zu entfernen.
  5. Klicke auf "Alle ersetzen".

Diese Methode ist einfach und benötigt kein VBA.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die Anwendung von Wildcards in Excel VBA besser zu verstehen:

  • Beispiel 1: Ersetze Text, der mit "W" beginnt und gefolgt von einer Zahl und einem Bindestrich ist:

    ws.UsedRange.Replace "W? - ", "", xlPart
  • Beispiel 2: Entferne Texte, die mit "W" beginnen, gefolgt von zwei Zeichen und "F":

    ws.UsedRange.Replace "W? - ?F ", "", xlPart

Diese Beispiele zeigen, wie du spezifische Textteile in deinen Excel-Daten mit VBA ersetzen kannst.


Tipps für Profis

  • Nutze die xlPart-Option in der Replace-Methode, um nur Teile des Textes zu ersetzen, anstatt den gesamten Inhalt.
  • Arbeite mit Variablen, um mehrere Ersetzungen in einem einzigen Makro durchzuführen und die Lesbarkeit des Codes zu verbessern.
  • Teste dein Makro zuerst an einer Kopie deiner Daten, um unerwünschte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Wildcards in einem Befehl verwenden?
Ja, du kannst mehrere Replace-Befehle hintereinander ausführen, um verschiedene Muster zu ersetzen.

2. Warum funktioniert # nicht als Wildcard in VBA?
In Excel VBA wird nur das ?-Symbol als Wildcard akzeptiert, um ein einzelnes Zeichen zu ersetzen. # ist nicht gültig in diesem Kontext.

3. Gibt es eine Möglichkeit, diesen Prozess zu automatisieren?
Ja, du kannst das oben beschriebene Makro anpassen und regelmäßig ausführen, um deine Daten automatisch zu bereinigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige