对于单区域范围,一切正常:选择单元格 A1 和 B1 并将其命名为“foo”。
?ThisWorkbook.Names.Item("foo").RefersTo
=Tabelle1!$A$1:$B$1
?ThisWorkbook.Names.Item("foo").RefersToRange.Address
$A$1:$B$1
Run Code Online (Sandbox Code Playgroud)
但是,两个区域范围将失败 (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'
Run Code Online (Sandbox Code Playgroud)
为什么我们无法获取“bar”名称所指的范围?
由于我不知道哪张纸包含该名称,是否有不使用的 解决方法?sheet.Range("bar")
您可以尝试 global Range
,而不是 a sheet.Range
:
? Range(ThisWorkbook.Names("bar").RefersTo).Address
Run Code Online (Sandbox Code Playgroud)
为了避免可能的跨工作簿问题,您可以使用将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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4786 次 |
最近记录: |