Excel VBA worksheet.names vs worksheet.range

我在名为bob的工作表上创build了一个定义的名称/范围,指向一个单元格。 在这个工作表上还有许多其他的名字/范围,我没有创build。 所有的数量/范围除了我的工作完美。

我应该能够通过使用以下任一语句来引用这个单元格的内容:

 (worksheet object).Names("bob").RefersToRange.Value (worksheet object).Range("bob").Value 

然而,只有第二个陈述,指的是Range工作出于某种原因。 第一个在Names列表中找不到Names

我的问题是:

  1. NameRange之间有什么区别?
  2. 这与我的名字/范围的全球/本地范围有关吗?
  3. 在工作表上创build的其他名称/范围如何显示在工作表NameRange列表中?

你是对的。 名称可以是本地的(属于工作表)和全局的(属于工作簿)。

(worksheet object).Names("bob")将只能find一个本地名称。 你的名字显然是全局的,所以你可以作为(worksheet object).Workbook.Names("bob").RefersToRange来访问它。

“其他名字”可能是本地的。 他们只出现在范围列表中,当他们的母表活跃(检查出)。 要创build本地名称,请在表格名称前面加上“!”: 'My Sheet Name'!bob分隔。

我不知道如何使用代码,但是如果您转到名称pipe理器在Excel 2007的function区中的“公式”选项卡组下,可以创build名称并select其范围。