使用间接引用另一个 sheet 上的 excel 命名范围
Refer to an excel named range on another sheet using indirect
假设我有三个 sheet(假设 Sheet1
、Sheet2
和 Sheet3
)。
Sheet1
和 Sheet2
分别包含一个名为 MyRange
的 sheet 级范围。
在 Sheet3
中,如果我想从 Sheet1
访问 MyRange
,我将只能使用 ='Sheet1'!MyRange
。
但现在,我希望 Sheet3
包含通用代码并能够引用 Sheet1
或 Sheet2
。所以我希望能够使用
实现同样的事情
=INDIRECT("'" & MySheetName & "'!MyRange")
但是,当我这样做时出现错误 #REF
。
- 我做错了什么?
- 我该如何解决这个问题?
如果 MyRange 由多行、多列范围组成,请确保在输入 =INDIRECT("'" & MySheetName & "'!MyRange")
时按了 ctrl-shift-enter
。如果您忘记使用 ctrl-shift-enter
,您将收到 #VALUE
错误。但是,您说您有 #REF
。
将您的代码用于单个单元格范围,我得到了您要查找的结果。我得到 #REF
错误的唯一方法是使用错误的 sheet 名称。我怀疑这是你的问题。检查 sheet 名称并重新发布更多详细信息,如果它仍然不起作用。
由非常有用的 tpkaplan 答案引发的进一步实验使我能够更好地定位问题。这是我的发现。
我在问题中描述的确切案例在大多数情况下确实有效(我失败了,但从未设法理解原因)。
然而,我认为我正在测试的案例并没有。
其实所谓的"Named range"指的是什么,你需要非常具体。 Excel 可以对四种不同的项目进行不同的处理:
- 名称是对单元格的引用
- 名称是对常量的引用
- 名称是对 table 个单元格的引用
- 名称是对上述任何类别的引用,但通过公式。
鉴于这四个类别,有 3 种方法可以获得 #REF
错误:
- 错误的sheet名称(如tpkaplan所述);
- 范围名称不存在(显然);
- 该名称指的是除单元格或单元格范围之外的任何其他内容(我的实际情况是一个公式)。
另请注意,如果名称指的是使用相对定位给出的单元格(例如,名称指的是 ='Sheet1'!$A5
,因此该行会根据您调用该名称的单元格而变化),当从另一个 sheet 调用,它的行为就好像它是从引用的 sheet.
的单元格 A1
调用的一样
因此,解决此问题的方法是让名称显示它在某处产生的值,并使用另一个名称来引用现在包含您尝试访问的信息的特定单元格。然后参考那个第二个名字。
假设我有三个 sheet(假设 Sheet1
、Sheet2
和 Sheet3
)。
Sheet1
和 Sheet2
分别包含一个名为 MyRange
的 sheet 级范围。
在 Sheet3
中,如果我想从 Sheet1
访问 MyRange
,我将只能使用 ='Sheet1'!MyRange
。
但现在,我希望 Sheet3
包含通用代码并能够引用 Sheet1
或 Sheet2
。所以我希望能够使用
=INDIRECT("'" & MySheetName & "'!MyRange")
但是,当我这样做时出现错误 #REF
。
- 我做错了什么?
- 我该如何解决这个问题?
如果 MyRange 由多行、多列范围组成,请确保在输入 =INDIRECT("'" & MySheetName & "'!MyRange")
时按了 ctrl-shift-enter
。如果您忘记使用 ctrl-shift-enter
,您将收到 #VALUE
错误。但是,您说您有 #REF
。
将您的代码用于单个单元格范围,我得到了您要查找的结果。我得到 #REF
错误的唯一方法是使用错误的 sheet 名称。我怀疑这是你的问题。检查 sheet 名称并重新发布更多详细信息,如果它仍然不起作用。
由非常有用的 tpkaplan 答案引发的进一步实验使我能够更好地定位问题。这是我的发现。
我在问题中描述的确切案例在大多数情况下确实有效(我失败了,但从未设法理解原因)。
然而,我认为我正在测试的案例并没有。
其实所谓的"Named range"指的是什么,你需要非常具体。 Excel 可以对四种不同的项目进行不同的处理:
- 名称是对单元格的引用
- 名称是对常量的引用
- 名称是对 table 个单元格的引用
- 名称是对上述任何类别的引用,但通过公式。
鉴于这四个类别,有 3 种方法可以获得 #REF
错误:
- 错误的sheet名称(如tpkaplan所述);
- 范围名称不存在(显然);
- 该名称指的是除单元格或单元格范围之外的任何其他内容(我的实际情况是一个公式)。
另请注意,如果名称指的是使用相对定位给出的单元格(例如,名称指的是 ='Sheet1'!$A5
,因此该行会根据您调用该名称的单元格而变化),当从另一个 sheet 调用,它的行为就好像它是从引用的 sheet.
A1
调用的一样
因此,解决此问题的方法是让名称显示它在某处产生的值,并使用另一个名称来引用现在包含您尝试访问的信息的特定单元格。然后参考那个第二个名字。