2010-02-01 27 views
2

我在名爲bob的工作表上創建了一個定義的名稱/範圍,指向單個單元格。在此工作表上設置了許多其他名稱/範圍,我沒有創建這些名稱/範圍。除了我的所有號碼/範圍都完美無缺。Excel VBA worksheet.names vs worksheet.range

我應該能夠通過使用以下的語句引用此單元格的內容:

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

然而,只有第二個聲明,指的是Range作品的某些原因。第一個在Names列表中找不到名稱。

我的問題是:

  1. 的區別是什麼,如果有的話,一個NameRange之間?
  2. 這與我的名字/範圍的全球/本地範圍有關嗎?
  3. 在工作表上創建的其他名稱/範圍如何顯示在工作表NameRange列表中?

回答

7

是的,你是對的。 名稱可以是本地(屬於工作表)和全局(屬於工作簿)。

(worksheet object).Names("bob")只會找到本地名稱。你的名字顯然是全球性的,所以你可以訪問它作爲(worksheet object).Workbook.Names("bob").RefersToRange

「其他名字」可能是本地的。它們只在父表單處於活動狀態時纔出現在範圍列表中(檢查出)。要創建本地名稱,請在表格名稱前加上'!':'My Sheet Name'!bob

+0

謝謝GSerg :)。這是我沒有找到,如何創建一個本地名稱,以便我可以比較行爲之間的差異。 – cOrOllArY 2010-02-01 11:38:58

1

我不知道如何使用代碼,但是如果您轉到名稱管理器在Excel 2007功能區中的「公式」選項卡組下,可以創建名稱並選擇其範圍。