在不知道工作表名称的情况下查找并激活 Excel 中的命名范围

mln*_*nyc 2 excel vba

我正在编写一个宏来更新一堆工作簿。

假设工作簿已打开。

我需要激活(或选择其中一个)一个具有名称(命名范围)的单元格,但问题是我不知道它位于哪个工作表中。

换句话说:我保证:

  • 指定的范围存在。
  • 命名范围对于打开的工作簿来说是全局唯一的。

我不保证:

  • 命名范围将位于同一工作表索引中。
  • 工作簿之间的工作表将被命名为相同。

任何建议将不胜感激,即使是向我展示如何从全局命名范围返回工作表的建议,因为这足以让我激活工作表并从那里开始。但理想情况下,解决方案将向我展示如何在不知道工作表名称的情况下激活/选择/更新(最终结果是我更新单元格,或者在下面插入行(如果有帮助的话))命名范围单元格。

我在 Excel 2007 中执行此操作

谢谢!

Dmi*_*liv 5

假设您已命名 range "test"

方式一:

Dim rng As Range
Set rng = Range("test")
'or if you have more than one workbook opened
'Set rng = ThisWorkbook.Names("test").RefersToRange
'select sheet
rng.Parent.Select
'select named range
rng.Select
Run Code Online (Sandbox Code Playgroud)

方式二:

'for currently active workbook
Application.Goto "test"
Run Code Online (Sandbox Code Playgroud)