Wie kann ich per Formel eine Formel aus einer anderen Zelle anzeigen lassen?
Ab Excel 365 kann einfach die Funktion verwendet werden:
=FORMELTEXT(K3)
Die Formel mit dieser Funktion gibt die Formel zurück, die in K3 steht.
Für ältere Versionen kann die benutzerdefinierte Funktion verwendet werden:
Prüfen, ob in der Zelle eine Formel vorliegt und anschlie�end die Formel (ohne Gleichheitszeichen) mit dem Ergebnis ausgeben lassen:
Function Bezug(Zelle) If Zelle.HasFormula Then Bezug = Right(Zelle.Formula, Len(Zelle.Formula) - 1) & " = " & Zelle Else Bezug = "" End Function
In die Zelle kommt dann einfach die Formel =Bezug(D7), wobei hier in D7 die eigentliche Formel steht.
Zelle: | B7 | C7 | D7 | E7 |
enthält: | 10 | 15 | =B7+C7*2 | =Bezug(D7) |
Ergebnis: | 40 | B7+C7*2 = 40 |
Noch eine benutzerdefinierte Funktion dazu, die einfach das Gleichheitszeichen ersetzt (also löscht):
Function Bezug1(Zelle) If Zelle.HasFormula Then Bezug = Replace(Zelle.FormulaLocal, "=", "") Else Bezug = "" End If End Function
In die Zelle kann dann z. B. eingegeben werden: =Bezug1(A1)
Oder für die Freunde gepflegter regulärer Ausdrücke (Microsoft VBScript Regular Expressions-Objektbibliothek muss eingebunden sein!):
Function Bezug2(Zelle) Dim Regex As New RegExp, regMatches As MatchCollection, regMatch As Match Bezug1 = 0 Regex.Pattern = "^(=)(.*)$" Set regMatches = Regex.Execute(Zelle.FormulaLocal) If regMatches.Count > 0 Then Bezug1 = regMatches(0).SubMatches(1) End Function