我環顧四周試圖解決這個問題,但我不熟悉編碼。
這是我的程式碼行,
='[WorkBook]BOM'!G6
我想要做的是將工作簿調用到一個單元格,這樣我就可以批量替換所有“工作簿”名稱,而無需查找和替換。
本質上是這樣的(雖然這段程式碼不起作用,但僅供參考)
='[=E1]BOM'!G6
然後在儲存格 E1 中,我可以輸入任何我想要的文字來替換工作簿名稱。我正在嘗試找到執行此操作的公式。
答案1
您應該使用該INDIRECT()
函數將文字字串作為函數進行計算。
=INDIRECT("'["& E1 & "]BOM'!G6")
請注意,僅當引用的工作簿開啟時,INDIRECT()
函數才會傳回值。否則將返回#REF!
- 錯誤。
答案2
INDIRECT
不適用於封閉的外部工作簿。自動化的最佳選擇似乎是將工作簿路徑放入儲存格中,並編寫一個巨集來尋找/取代所有出現的舊工作簿名稱並替換為新工作簿名稱。
答案3
我的解決方案將允許您引用一個範圍,前提是您先命名它們。
例如,您在工作簿 1 中將範圍 A1:A100 命名為 MyRange
然後在您目前的工作簿中,您可以在工作簿 2 的 E1 中輸入“MyRange”
然後使用間接(E1)