【发布时间】:2021-03-08 22:40:33
【问题描述】:
我正在尝试使用 INDIRECT 函数在同一工作簿上的不同打开且可见的工作表上动态引用单元格。当我使用静态值创建单元格引用时,它可以正常工作,但如果引用不是静态的,则不会。使用下面的代码 sn-p,$A$31 是工作表名称,F9 是该工作表的单元格引用。这工作正常。不过需要动态的是F9,比如G9、H9和F10、F11。
=INDIRECT("'" & $A$31 & "'!F9")
我原以为以下 sn-p 应该是要进行的更改。但是这只会导致 #REF 错误
=INDIRECT("'" & $A$31 & "'!" & F9)
我需要进行哪些更改,为什么会出现错误?
【问题讨论】:
-
首先将相同的公式间接写入另一个单元格,看看您是否获得有效地址。喜欢
="'" & $A$31 & "'!" & F9 -
删除 INDIRECT 我最终得到一个从 $A$31 开始的工作表名称的串联字符串,以及当前 Activesheet 上 F9 中的任何值
-
=INDIRECT("'" & $A$31 & "'!" & F9)这应该可以。检查并仔细检查您的工作表名称和引用的单元格。 -
你的最后一次尝试对我来说很好。如果 A31 中的工作表不存在,我会收到 #REF 错误。但是,请考虑使用 INDIRECT(ADDRESS))。
-
正如我所说,第一个版本运行良好。但是像第二个那样隔离F9并没有。工作表参考名称显然有效。这些是我同时在他们自己的单元格中尝试过的变体,然后是文字结果 1) =INDIRECT("'" & $A$31 & "'!F9") = 2,工作正常 2) =INDIRECT ("'" & $A$31 & "'!" & F9) = #REF! 3) =CONCATENATE("'", $A$31, "'!",F9) = 'Sheet1'!y, 不好(y 在那个单元格中) 4) =INDIRECT(CONCATENATE("'" & $A$31 & "'!",F9)) = #REF! 5) ="'" & $A$31 & "'!F9" = 'Sheet1'!F9