【发布时间】:2019-09-05 03:47:01
【问题描述】:
我有一张包含一列单元格的表格,每个单元格都引用一个命名范围。这些命名范围中的每一个都位于其他工作表上,我不知道它们在哪些工作表上,我只知道范围的名称。每个范围都有一个唯一的名称,因此不存在范围重复的风险,它们在名称管理器中可以清楚地识别。我希望 VBA 访问这些范围并更改它们的值。
通常的Range().select 显然不起作用,因为我不知道范围在哪张纸上。我可以暴力破解它,并且对于每个命名范围都遍历每张纸以找到范围,但这显然是非常低效的。或者,如果我可以转到每个单元格所指的范围,也可以完成这项工作。
实际上,我有许多具有 =in_total_pop 等功能的单元格。我不知道 in_total_pop 保存在哪个工作表上,但我想访问 in_total_pop。
有什么方法可以实现吗?在我看来,这是一项令人惊讶的简单任务,我很难想出一种方法来实现它。我是命名范围的粉丝,但如果不知道它们在哪张纸上就无法访问它们,那么这是一个很大的劣势。默认命名方法至少在名称中包含工作表地址(例如 ='All cost'!M29),然后可以通过 VBA 对其进行破译以找到范围。感谢您的帮助,如果我遗漏了一些明显的东西,请告诉我。
【问题讨论】: