VBA Ersetzen gemäß Mapping Tabelle
Schritt-für-Schritt-Anleitung
Um Werte in Excel gemäß einer Mappingtabelle zu ersetzen, kannst du ein einfaches VBA-Skript verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:
-
Öffne dein Excel-Dokument.
-
Erstelle eine Mappingtabelle: In einem neuen Blatt (z.B. "Mapping") erstelle eine Tabelle mit zwei Spalten. In der ersten Spalte (A) stehen die alten Werte, die ersetzt werden sollen, und in der zweiten Spalte (B) die neuen Werte.
-
Öffne den VBA-Editor: Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeinDokumentName)" > Einfügen > Modul.
-
Füge den folgenden VBA-Code ein:
Public Sub Ersetzen()
Dim avntValues As Variant
Dim ialngIndex As Long
With Worksheets("Mapping") ' Anpassen !!!
avntValues = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp)).Value
End With
With Worksheets("Tabelle1").Columns(5) ' Anpassen !!!
For ialngIndex = LBound(avntValues) To UBound(avntValues)
Call .Replace(What:=avntValues(ialngIndex, 1), _
Replacement:=avntValues(ialngIndex, 2), LookAt:=xlWhole)
Next
End With
End Sub
-
Schließe den VBA-Editor: Drücke ALT + Q
, um den Editor zu schließen.
-
Führe das Skript aus: Drücke ALT + F8
, wähle Ersetzen
aus und klicke auf "Ausführen".
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du kein VBA verwenden möchtest, kannst du auch die SVERWEIS
-Formel nutzen, um die Werte zu ersetzen:
-
Kopiere die Spalte E in eine andere Spalte (z.B. Z).
-
Verwende in der ersten Zelle der neuen Spalte die Formel:
=SVERWEIS(Z2;Mapping!$A:$B;2;FALSCH)
-
Ziehe die Formel nach unten, um alle Werte zu ersetzen.
Diese Methode ist einfach und benötigt kein Programmieren, jedoch kann sie bei sehr großen Datenmengen langsamer sein.
Praktische Beispiele
Angenommen, in deiner Mappingtabelle hast du die folgenden Werte:
Alte Werte |
Neue Werte |
4550 |
3123456 |
1234 |
567890 |
Wenn du das VBA-Skript ausführst, werden alle Vorkommen von 4550 in Spalte E durch 3123456 ersetzt. Das gleiche gilt für 1234, das durch 567890 ersetzt wird.
Tipps für Profis
-
Nutze die Application.ScreenUpdating
-Eigenschaft: Um die Ausführung zu beschleunigen, kannst du den Bildschirmaktualisierungsmodus während der Ersetzung deaktivieren:
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True
-
Überprüfe die Mappingtabelle regelmäßig: Achte darauf, dass deine mapping tabelle excel
aktuell ist und alle notwendigen Einträge enthält.
FAQ: Häufige Fragen
1. Frage: Kann ich die Mappingtabelle auch in einer anderen Datei speichern?
Antwort: Ja, du kannst die Mappingtabelle in einer anderen Excel-Datei speichern. Du musst jedoch den Pfad zur Datei im VBA-Code angeben.
2. Frage: Was passiert, wenn ein Wert nicht in der Mappingtabelle vorhanden ist?
Antwort: Wenn ein Wert nicht in der Mappingtabelle vorhanden ist, bleibt der ursprüngliche Wert unverändert. Du kannst jedoch zusätzliche Logik im VBA-Code hinzufügen, um solche Fälle zu behandeln.