【发布时间】:2020-05-12 00:00:13
【问题描述】:
我正在尝试使用 Excel 公式而不是 VBA 执行以下操作。我有两个工作簿(比如 WB1 和 WB2),并且都在 Excel 中打开。在 WB1 中,我有一张带有单元格(比如A1)的表格,其中可以有不同的代码,其中一部分是 WB2 中一张表格的名称。代码的形式为DOD8.2x1.9, DOD8.2x2.4...DOD9.2x1.9, DOD9.2x2.4.., DOD10.2x4.9 等,其中直到x 的字符指的是WB2 中的工作表(即DOD8.2, DOD9.2, DOD10.2 等)。我需要 WB1 中另一个单元格的公式(比如B1),它可以获取 WB2 中由该代码定义的工作表中特定单元格的值。我知道B1 中=[WB2.xlsx]DOD8.2!$EB$6 或=[WB2.xlsx]DOD10.2!$EB$6 形式的公式是如何从WB2 中的特定工作表中获取单元格值,并且公式=LEFT(A1, FIND("x",A1)-1) 将提取单元格A1 的相关部分给我WB2 中特定工作表的名称,但我无法弄清楚如何使用它来构造一个将两者结合起来的公式,以自动选择由A1 中的代码定义的工作表。我尝试用LEFT(A1, FIND("x",A1)-1) 替换通用公式中的工作表名称(例如DOD10.2),所以我最终使用不同的连接方法得到=[WB2.xlsx]LEFT(A1, FIND("x",A1)-1)!$EB$6,但没有任何效果。任何人都可以提出实现这一目标的方法吗?
【问题讨论】:
-
研究 INDIRECT 公式。
-
感谢您的提示。我试过这个
=(INDIRECT("[WB2.xlsx]"&"(LEFT(A1, FIND(""x"",A1)-1))"&"!"&"$EB$6"))和这个=[WB2.xlsx]&"INDIRECT(LEFT(A1, FIND(""x"",A1)-1))"&"!$EB$6",但是第一个出现#REF!错误,第二个出现Formula problem。我尝试构建公式的字符串是否正确?
标签: excel excel-formula