我四处寻找并尝试解决这个问题,但是我不熟悉编码。
这是我的代码行,
='[WorkBook]BOM'!G6
我想要做的是让工作簿调用一个单元格,这样我就可以批量替换所有“工作簿”名称,而无需查找和替换。
本质上是这样的(虽然此代码不起作用,但仅供参考)
='[=E1]BOM'!G6
然后,在单元格 E1 中,我可以输入任何我想要的文本来替换工作簿名称。我正在尝试找到公式来执行此操作。
答案1
您应该使用该INDIRECT()
函数来评估文本字符串作为函数。
=INDIRECT("'["& E1 & "]BOM'!G6")
请注意,仅当引用的工作簿打开时,该INDIRECT()
函数才会返回值。否则它将返回 -error #REF!
。
答案2
INDIRECT
无法与关闭的外部工作簿配合使用。自动化的最佳选择似乎是将工作簿路径放在单元格中,然后编写一个宏,该宏将查找/替换所有出现的旧工作簿名称并替换为新工作簿名称。
答案3
我的解决方案是让您引用一个范围,但前提是您先命名它们。
例如,您将工作簿 1 中的范围 A1:A100 命名为 MyRange
然后,您可以在当前工作簿中在工作簿 2 的 E1 中输入“MyRange”
然后使用 INDIRECT(E1)