Teil einer Formel per VBA austauschen
Schritt-für-Schritt-Anleitung
Um einen Teil einer Formel in Excel per VBA auszutauschen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:
-
Öffne den VBA-Editor: Drücke ALT + F11
in Excel.
-
Neues Modul erstellen: Klicke mit der rechten Maustaste auf einen der Einträge im Projektfenster und wähle Einfügen > Modul
.
-
VBA-Code einfügen: Kopiere den folgenden Code in das Modul:
Sub string_aus_formel()
Dim rein As Range, cell As Range, repBereich As Range
Dim raus As String
raus = InputBox("Was möchten Sie ersetzen?", "Ersetzen", "B23")
Set rein = Application.InputBox("Zellbezug..." & vbCrLf & "Wählen Sie die Zelle, auf die Sie sich beziehen wollen", Type:=8)
If rein.Address = "" Then Exit Sub
Set repBereich = Application.InputBox("... ersetzen in:" & vbCrLf & "Wählen Sie den Bereich, wo sie den Bezug ersetzen wollen", Type:=8)
For Each cell In repBereich
cell.Replace What:=raus, Replacement:=rein, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
End Sub
-
Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Führe das Makro aus, indem du ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Häufige Fehler und Lösungen
-
Fehler: "Rein" ist nicht gesetzt: Stelle sicher, dass du eine gültige Zelle auswählst, wenn du nach dem Zellbezug gefragt wirst. Wenn du keine Zelle auswählst, wird das Makro abgebrochen.
-
Problem mit der Auswahl: Wenn du eine Auswahl triffst, die keine Formeln enthält, wird das Makro nicht wie erwartet funktionieren. Überprüfe, ob die Zellen in deinem Auswahlbereich tatsächlich Formeln enthalten.
-
Falscher Zellbezug: Wenn du den falschen Zellbezug ersetzen möchtest, überprüfe den eingegebenen Wert im InputBox.
Alternative Methoden
Falls du kein VBA verwenden möchtest, kannst du auch die Funktion Suchen und Ersetzen
in Excel verwenden:
- Markiere den Bereich, in dem du den Zellbezug ändern möchtest.
- Drücke
Strg + H
, um das Dialogfeld "Suchen und Ersetzen" zu öffnen.
- Gib in das Feld "Suchen nach" den alten Zellbezug (z. B. "B23") und in das Feld "Ersetzen durch" den neuen Zellbezug ein.
- Klicke auf "Alle ersetzen".
Diese Methode ist jedoch weniger flexibel, wenn du viele verschiedene Zellbezüge ändern musst.
Praktische Beispiele
Angenommen, du hast die folgende Formel in mehreren Zellen:
=INDIREKT("'"&home!$A$17&"ic'!B23")+INDIREKT("'"&home!$A$18&"ic'!B23")
Du möchtest "B23" durch den Zellbezug der aktuellen Zelle ersetzen. Durch das Ausführen des obigen VBA-Codes kannst du dies schnell und effizient erledigen.
Tipps für Profis
-
Verwende relative Zellbezüge: Wenn du die Werte dynamisch ändern möchtest, nutze relative Zellbezüge in deinen Formeln. Das ermöglicht eine einfachere Anpassung.
-
Testumgebung: Teste deinen Code immer in einer Kopie deiner Datei, um versehentliche Datenverluste zu vermeiden.
-
Dokumentation: Kommentiere deinen VBA-Code ausreichend, um spätere Anpassungen und das Verständnis zu erleichtern.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Zellbezüge gleichzeitig ersetzen?
Du kannst das Makro so anpassen, dass es eine Liste von Zellbezügen akzeptiert und diese nacheinander ersetzt.
2. Was passiert, wenn ich den falschen Zellbezug eingebe?
Das Makro wird versuchen, den angegebenen Zellbezug zu ersetzen, aber wenn er nicht gefunden wird, bleibt die Formel unverändert.
3. Kann ich das Makro auf bestimmte Zellen beschränken?
Ja, beim Auswahlprozess kannst du nur die Zellen auswählen, die du ändern möchtest.