Frage

Ich versuche, eine Textzeichenfolge in eine Formel umzuwandeln, aber meine Textzeichenfolge ist etwas ungewöhnlich, da sie eine Verknüpfung zwischen zwei Arbeitsblättern beschreibt.Hier ist die Ausgangsformel:

+TEXT("+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\["&TRIM(LEFT(SUBSTITUTE($B9," ",REPT(" ",30)),64))&" vM.xlsx]Metrics'!$D$8",1)

Ich habe diese Formel erstellt, um zu vermeiden, dass viele Tabellenkalkulationen manuell verknüpft werden müssen.Es erfasst die ersten beiden Wörter einer Zelle und fügt diese in eine Textzeichenfolge ein, die eine Verknüpfung herstellen würde, wenn es sich um eine Formel handeln würde.Auf diese Weise kann ich einfach einen Firmennamen in Zelle B9 eingeben und diese Formel erzeugt eine Textzeichenfolge, die den gewünschten Link beschreibt.Hier ist die Formelausgabe:

+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\[xxx vM.xlsx]Metrics'!$D$8

Wie Sie sehen können, würde dies, wenn es sich um eine Formel handeln würde, einen Link generieren und den Wert zurückgeben Cell D8 des xxx Arbeitsblatt.Ich habe die Evaluierungs-Problemumgehung (siehe unten) sowie die indirekte Funktion ausprobiert, aber keine von beiden scheint zu funktionieren.Lassen Sie es mich wissen, wenn dies keinen Sinn ergibt. Vielen Dank im Voraus für Ihre Hilfe!

Function EvalCell(RefCell As String)
Application.Volatile
EvalCell = Evaluate(RefCell)
End Function
War es hilfreich?

Lösung

Evaluate und INDIRECT würden beide erfordern, dass die Quellarbeitsmappe geöffnet ist, aber Sie könnten ExecuteExcel4Macro verwenden:

Function EvalCell(RefCell As String)
Application.Volatile True
application.ExecuteExcel4Macro(application.convertformula(mid$(RefCell, 2), xlA1, xlr1c1))
End Function

Ich würde jedoch vermeiden, zu viele dieser Funktionen zu verwenden!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top