【问题标题】:Excel indirect reference produces a #ref errorExcel 间接引用产生 #ref 错误
【发布时间】: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

标签: excel vba ref


【解决方案1】:

我找到了答案。我确定代码是如何工作的,但稍后会解决。动态单元格引用部分需要从:&F9改写为:&CELL("address", F9)。 “地址”似乎是一个关键词

=INDIRECT("'" & $A$31 & "'!" & CELL("address",F9))

【讨论】:

    猜你喜欢
    • 2018-11-03
    • 2012-09-14
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多