所有工作都适用于单区域范围: 选择单元格A1和B1,并为其命名" foo"。
?ThisWorkbook.Names.Item("foo").RefersTo
=Tabelle1!$A$1:$B$1
?ThisWorkbook.Names.Item("foo").RefersToRange.Address
$A$1:$B$1
但是,双区域范围将失败(Excel 2010): 单击按住Ctrl键单元格A2和B2,并将其命名为" bar"。
?ThisWorkbook.Names.Item("bar").RefersTo
=Tabelle1!$A$2,Tabelle1!$B$2
?ThisWorkbook.Names.Item("bar").RefersToRange.Address
-> Run-time error '1004'
为什么我们无法获得" bar" -name所指的范围?
是否有解决方法未使用 sheet.Range("bar")
,因为我不知道哪个工作表包含该名称?
答案 0 :(得分:1)
您可以尝试全局Range
,而不是sheet.Range
:
? Range(ThisWorkbook.Names("bar").RefersTo).Address
为了避免可能的跨工作簿陷阱,您可以使用 ConvertFormula
将工作簿名称添加到范围:
? ThisWorkbook.Names("bar").RefersTo
=Sheet1!$A$2,Sheet1!$B$2
? Application.ConvertFormula(ThisWorkbook.Names("bar").RefersTo, xlA1, xlA1)
=[Book1]Sheet1!$A$2,[Book1]Sheet1!$B$2
? Application.Range(Application.ConvertFormula(ThisWorkbook.Names("bar").RefersTo, xlA1, xlA1)).Address
=$A$2,$B$2
答案 1 :(得分:0)
这里的一个问题是,RefersToRange
对于由以下内容定义的多区域命名范围失败:
=Sheet1!$B$2 + Sheet1!$D$4
但它适用于:
=Sheet1!$B$2 , Sheet1!$D$4
差异为,
与+
。