通過Worksheet.Range("Name")
,我可以得到一個命名範圍。檢查範圍是否是一個命名範圍
我正在尋找相反的操作:給定一個Range
,檢查它是否有一個定義的名稱。
Tried .Name
,但它提供了一個表達,而不是用戶定義的名稱:
? SheetDB.Range("VerPeriod").Address
$C$1
? SheetDB.Range("$C$1").Name
=БазаСИ!$C$1
的意圖是:我想用一列的用戶定義的名稱,以獲得從給定行的值,而不是它的位置可以提高代碼的可讀性和可維護性。爲此,我會將每個標題單元格命名爲一個範圍。這可以通過一個類模塊來實現,所以在設置代碼中可以掃描標題行並使其成爲a hash table{name: column number}
。 (撇開多少保證這個優化是,問題仍然存在。)
爲什麼不能僅看通過'Names'集合,看看命名範圍'RefersTo'之一是指你是什麼看着?但我不確定我是否理解你爲什麼要這樣做 - 你想獲取已知的單元格位置,將其轉換爲命名範圍,以便隱式使用命名範圍的RefersTo來獲取開始的地址? – YowE3K
@ YowE3K請參閱更新 –
我仍然不確定我是否理解需要反向工作,特別是如果每列都有一個命名範圍。即如果一個列的頭部爲「XYZ」,並且因此您有一個名爲(可能)的「Col_XYZ」範圍(僅指頭部),則列本身可以作爲「Columns(Range(」Col_XYZ「)。Column)或行'r'上該列內的單元格可以由'Cells(r,Range(「Col_XYZ」)。Column)'引用。所以我只是不明白爲什麼你需要查看該列(可能是5)在單元格E1中具有「XYZ」標題,以便您可以發現引用單元格E1的範圍名稱是「Col_XYZ」。 – YowE3K