使用间接引用另一张工作表上的 excel 命名范围



假设我有三张纸(假设Sheet1Sheet2Sheet3(。

Sheet1Sheet2 分别包含一个名为 MyRange 的工作表级区域。在Sheet3中,如果我想从Sheet1访问MyRange,我将只能使用='Sheet1'!MyRange

但是现在,我希望Sheet3包含通用代码并能够引用Sheet1Sheet2。所以我希望能够使用

=INDIRECT("'" & MySheetName & "'!我的范围"(

但是,当我这样做时,我会收到错误#REF

  • 我做错了什么?
  • 我该如何解决这个问题?

如果 MyRange 由多行、多列范围组成,请确保在输入 =INDIRECT("'" & MySheetName & "'!MyRange") 时按ctrl-shift-enter。 如果您忘记使用 ctrl-shift-enter ,您将收到一个#VALUE错误。 但是,您说您有#REF.

使用您的单单元格区域代码,我得到了您正在寻找的结果。 我得到#REF错误的唯一方法是使用错误的工作表名称。 我怀疑那是你的问题。 检查工作表名称,如果仍然不起作用,请重新发布更多详细信息。

由非常有用的 tpkaplan 答案触发的进一步实验使我能够更好地找到问题。以下是我的发现。

我在问题中描述的确切情况在大多数情况下确实非常正确(我失败了,但从未设法理解为什么(。

但是,我认为我正在测试的情况并非如此。

实际上,您需要非常具体地说明所谓的"命名范围"所指的内容。Excel 可以以不同的方式处理四个不同的项目:

  • 名称是对单元格的引用
  • 名称是对常量的引用
  • 名称是对单元格表的引用
  • 该名称是对上述任何类别的引用,但通过公式。

给定这四个类别,有 3 种方法可以获取#REF错误:

  • 错误的工作表名称(如 tpkaplan 所述(;
  • 范围名称不存在(显然(;
  • 该名称是指单元格或一系列单元格以外的任何其他内容(我的实际案例是一个公式(。

另请注意,如果名称引用使用相对定位给定的单元格(例如,名称引用 ='Sheet1'!$A5 ,以便行根据您从中调用名称的单元格而变化(,则从另一个工作表调用时,它的行为就像是从引用工作表的单元格A1调用一样。

因此,为了解决这个问题,要走的方法是让名称显示它在某处产生的值,并具有另一个名称,该名称引用现在包含您尝试访问的信息的特定单元格。然后引用第二个名字。

相关内容

  • 没有找到相关文章

最新更新