Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: mit VBA Suchen+Ersetzen text korrigieren

mit VBA Suchen+Ersetzen text korrigieren
joh
Moin Moin!
Ich möchte in einem längerem Text, der auf mehrere Zeilen/Spalten in Tabelle3 verteilt ist, bestimmte Begriffe suchen und die dann durch korrigierte Begriffe ersetzen. Am Besten, in dem man den Text (über mehrere Zeilen/Spalten) markiert und dann ein Makro aufruft, das den markierten Bereich bearbeitet.
Die zu suchenden Begriffe stehen in Tabelle4!A:A, die zu ersetzenden direkt rechts daneben in Tabelle4!B:B
Es gibt hierzu schon ein Beispiel, jedoch wird hier nur eine markierte Zelle in Tabelle3 durchsucht
https://www.herber.de/forum/archiv/820to824/t821960.htm
Das Makro soll damit Texte für wordle.net Textwolken aufarbeiten, in dem ähnliche Begriffe oder falsche Schreibweisen in einem Text zusammengefasst werden.
Danke für Hilfe! Oliver
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: mit VBA Suchen+Ersetzen text korrigieren
01.07.2011 22:10:53
KlausF
Hallo Oliver,
die hatte ich noch in meinem Archiv gefunden:
https://www.herber.de/bbs/user/75562.xls
Hoffe, es passt ...
Gruß
Klaus
AW: mit VBA Suchen+Ersetzen text korrigieren
01.07.2011 22:23:13
KlausF
Sehe soeben, dass du eine Auswahl ändern willst
und nicht den ganzen Text. Dann Zeile ändern in:
Selection.Cells.Replace What:=repl_arr(i, 1), Replacement:=repl_arr(i, 2)
Gruß
Klaus
Anzeige
AW: mit VBA Suchen+Ersetzen text korrigieren
04.07.2011 11:33:19
joh
Danke Klaus!!! Bin beeindruckt von der Einfachheit des VBA-Codes: klappt super, auch Deine Erweiterung!
Vollständigkeitshalber hier der volle Code:
Sub SuchenErsetzenListe()
Dim find_str As String, repl_str As String
Dim repl_arr As Variant
Dim i As Variant
' code to get find_str and repl_str
With ThisWorkbook.Worksheets("Tabelle4")
' put table in range array
repl_arr = .Range("repl_table").Value
End With
' make replacements for non-empty cells selected
For i = 1 To UBound(repl_arr)
If Not IsEmpty(repl_arr(i, 1)) Then
Selection.Cells.Replace What:=repl_arr(i, 1), Replacement:=repl_arr(i, 2)
End If
Next i
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mit VBA Suchen und Ersetzen in Excel


Schritt-für-Schritt-Anleitung

Um mit VBA in Excel bestimmte Begriffe zu suchen und zu ersetzen, kannst du das folgende Excel-Makro verwenden. Stelle sicher, dass dein Text in Tabelle3 und die zu suchenden sowie zu ersetzenden Begriffe in Tabelle4 stehen.

  1. Öffne den VBA-Editor (drücke ALT + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“, dann „Einfügen“ und „Modul“).
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub SuchenErsetzenListe()
    Dim find_str As String, repl_str As String
    Dim repl_arr As Variant
    Dim i As Variant

    ' Hier wird die Tabelle mit den Ersetzungswerten geladen
    With ThisWorkbook.Worksheets("Tabelle4")
        repl_arr = .Range("A1:B" & .Cells(.Rows.Count, 1).End(xlUp).Row).Value
    End With

    ' Ersetzungen für die ausgewählten Zellen durchführen
    For i = 1 To UBound(repl_arr)
        If Not IsEmpty(repl_arr(i, 1)) Then
            Selection.Cells.Replace What:=repl_arr(i, 1), Replacement:=repl_arr(i, 2)
        End If
    Next i
End Sub
  1. Wähle den Bereich in Tabelle3 aus, in dem du die Begriffe ersetzen möchtest.
  2. Führe das Makro aus (drücke F5 im VBA-Editor oder wechsle zurück zu Excel und wähle „Entwicklertools“ > „Makros“).

Häufige Fehler und Lösungen

Fehler: Makro funktioniert nicht oder es wird nichts ersetzt.

  • Lösung: Stelle sicher, dass du den richtigen Bereich in Tabelle3 ausgewählt hast und dass die Werte in Tabelle4 korrekt eingetragen sind.

Fehler: Der Bereich in Tabelle4 ist nicht korrekt definiert.

  • Lösung: Achte darauf, dass die zu suchenden Begriffe in Spalte A und die zu ersetzenden Begriffe in Spalte B stehen.

Alternative Methoden

Wenn du mit VBA nicht vertraut bist, kannst du auch die integrierte Suchen und Ersetzen-Funktion in Excel verwenden:

  1. Markiere den gewünschten Zellbereich in Tabelle3.
  2. Drücke STRG + H, um das Suchen und Ersetzen-Fenster zu öffnen.
  3. Gib den zu suchenden Begriff in „Suchen nach“ und den Ersetzungswert in „Ersetzen durch“ ein.
  4. Klicke auf „Alle ersetzen“.

Diese Methode eignet sich gut für gelegentliche Ersetzungen, während VBA für umfangreiche und wiederholte Ersetzungen ideal ist.


Praktische Beispiele

  1. Beispiel 1: Ersetze „Test“ durch „Überprüfung“.

    • In Tabelle4:
      • A1: Test
      • B1: Überprüfung
  2. Beispiel 2: Ersetze „Fehler“ durch „Problem“.

    • In Tabelle4:
      • A2: Fehler
      • B2: Problem

Führe dann das Makro aus, um alle Vorkommen in der markierten Auswahl zu ersetzen.


Tipps für Profis

  • Benutze Trim und LCase: Um sicherzustellen, dass keine Leerzeichen und Groß-/Kleinschreibung Probleme verursachen, verwende Trim und LCase in deinem Code.
If Not IsEmpty(repl_arr(i, 1)) Then
    Selection.Cells.Replace What:=Trim(LCase(repl_arr(i, 1))), Replacement:=repl_arr(i, 2)
End If
  • Fehlermeldungen abfangen: Implementiere Fehlerbehandlung, um unerwartete Probleme elegant zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Zellen zu durchsuchen? Du kannst den Selection-Befehl durch eine spezifische Range ersetzen, wie z.B. Range("A1:A10").

2. Was mache ich, wenn ich mehr als zwei Spalten für Suchen und Ersetzen habe? Du kannst die Schleife erweitern und zusätzliche Spalten in Tabelle4 einbeziehen, indem du die entsprechenden Indizes in repl_arr anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige