
Kennt jemand eine Methode oder ein Makro, mit dem man eine Formel in eine indirekte umwandeln kann?
Beispielsweise lauten alle Formeln auf meinem Blatt derzeit wie folgt:
=SUM(Sheet2!A1:A10),
Gibt es eine Möglichkeit, dies schnell in eine INDIRECT
Funktion wie die folgende zu ändern:
=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)
Bei einer Formel ist das nicht schwer zu ändern, bei Hunderten von Formeln, von denen jede 3–4 Verweise auf andere Blätter enthält, würde die Korrektur jedoch sehr lange dauern.
Das Problem entsteht dadurch, dass ich einen Bereich summiere, die Formel jedoch jedes Mal, wenn ich oben eine neue Zeile einfüge, nicht auf die richtigen Zellen verweist. Ich versuche, eine bessere Formel zu finden, damit ich die Zeilennummer nicht jedes Mal manuell ändern muss.
Antwort1
Dieses Makro hilft Ihnen, Formeln im Blatt zu suchen und zu ersetzen.
Sub FindReplaceFormula()
Cells.Replace What:="=SUM(Sheet2!A1:A10)", Replacement:= _
"=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Sie können die Zellbezüge in der Formel nach Bedarf anpassen.