VBA Suchen und Ersetzen in Formeln
Schritt-für-Schritt-Anleitung
Um in Excel mit VBA Suchen und Ersetzen in Formeln durchzuführen, kannst du folgendes Makro verwenden. Dieses Beispiel entfernt spezifische Teile einer Formel in Spalte V:
Sub Runden_weg()
Dim i As Long
Dim lz As Long
Application.ScreenUpdating = False
lz = Cells(Rows.Count, 22).End(xlUp).Row
For i = 1 To lz
Cells(i, 22).FormulaLocal = "'" & Cells(i, 22).Formula
Cells(i, 22).Formula = "'" & Left(Cells(i, 22), Len(Cells(i, 22)) - 11)
Cells(i, 22) = Right(Cells(i, 22), Len(Cells(i, 22)) - 7)
Cells(i, 22) = "=" & Cells(i, 22)
Next i
Application.ScreenUpdating = True
End Sub
- Öffne den VBA-Editor mit
ALT + F11
.
- Füge ein neues Modul hinzu und kopiere den obigen Code hinein.
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
Alternative Methoden
Ein weiterer Ansatz ist, die Excel-Funktion Suchen und Ersetzen
manuell zu nutzen. Du kannst auch ein VBA-Skript verwenden, das auf Find
und Replace
basiert:
Sub Suchen_Ersetzen()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("DeinBlattName")
With ws.Cells
.Replace What:="Runden((", Replacement:="", LookAt:=xlPart
.Replace What:=")/100;0)*100", Replacement:="", LookAt:=xlPart
End With
End Sub
Praktische Beispiele
Hier sind einige praktische Beispiele, die zeigen, wie du das Suchen und Ersetzen
in Formeln anpassen kannst:
-
Einfaches Ersetzen in den ersten 10 Zellen:
Sub Beispiel_Ersetzen()
Dim i As Integer
For i = 1 To 10
Cells(i, 22).Formula = Replace(Cells(i, 22).Formula, "RUNDEN((", "=")
Cells(i, 22).Formula = Replace(Cells(i, 22).Formula, ")/100;0)*100", "")
Next i
End Sub
-
Ersetzen in einer gesamten Spalte:
Sub SpalteErsatz()
Dim rC As Range
For Each rC In Range("V:V").SpecialCells(xlCellTypeFormulas)
rC.Formula = Replace(rC.Formula, "RUNDEN((", "=")
rC.Formula = Replace(rC.Formula, ")/100;0)*100", "")
Next rC
End Sub
Tipps für Profis
- Nutze
Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies verbessert die Leistung erheblich.
- Speichere deine Arbeit häufig, bevor du Makros ausführst, um Datenverlust zu vermeiden.
- Teste deine Makros zunächst in einer Kopie deiner Datei.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass die Ersetzungen nur in Formeln stattfinden?
Du kannst den Bereich mit SpecialCells(xlCellTypeFormulas)
einschränken, um nur Zellen mit Formeln zu bearbeiten.
2. Was sollte ich tun, wenn ich viele verschiedene Ersetzungen vornehmen möchte?
Erstelle eine Liste der Ersetzungen und iteriere durch diese Liste in deinem VBA-Code, um die Lesbarkeit und Wartbarkeit zu erhöhen.
3. Kann ich das Makro für andere Spalten verwenden?
Ja, du musst lediglich die Spaltenreferenz im Code anpassen, um die gewünschte Spalte zu bearbeiten.