Excel mit Referenz für Arbeitsblattnamen

Excel mit Referenz für Arbeitsblattnamen

Ich habe versucht, das Problem zu lösen, kenne mich jedoch mit der Codierung nicht aus.

Hier ist meine Codezeile,

='[WorkBook]BOM'!G6

Ich möchte, dass der Arbeitsmappenaufruf eine Zelle anspricht, sodass ich alle Arbeitsmappennamen ohne Suchen und Ersetzen in einer Massenoperation ersetzen kann.

Im Wesentlichen so etwas (obwohl dieser Code nicht funktioniert, dient er nur als Referenz)

='[=E1]BOM'!G6

Dann könnte ich in Zelle E1 jeden beliebigen Text eingeben, um den Namen der Arbeitsmappe zu ersetzen. Ich versuche, die Formel dafür zu finden.

Antwort1

Sie sollten die INDIRECT()Funktion verwenden, um eine Textzeichenfolge als Funktion auszuwerten.

=INDIRECT("'["& E1 & "]BOM'!G6")

Beachten Sie, dass die INDIRECT()Funktion den Wert nur dann zurückgibt, wenn die referenzierte Arbeitsmappe geöffnet ist. Andernfalls wird ein #REF!-Fehler zurückgegeben.

Antwort2

INDIRECTfunktioniert nicht mit geschlossenen externen Arbeitsmappen. Die beste Möglichkeit zur Automatisierung scheint zu sein, den Arbeitsmappenpfad in eine Zelle einzugeben und ein Makro zu schreiben, das alle Vorkommen des alten Arbeitsmappennamens findet/ersetzt und durch den neuen Arbeitsmappennamen ersetzt.

Antwort3

Mit meiner Lösung können Sie auf einen Bereich nur verweisen, wenn Sie ihn zuerst benennen.

Beispielsweise benennen Sie den Bereich A1:A100 in Arbeitsmappe 1 als MyRange

Dann können Sie in Ihrer aktuellen Arbeitsmappe "MyRange" in E1 in Arbeitsmappe 2 eingeben

dann verwenden Sie INDIREKT(E1)

verwandte Informationen