我想从命名范围中检索一个值。想象一下具有X列和Y行的命名范围。我想返回一个值,例如,从第2列第3行返回。我遇到的问题是,如果我编写代码并运行它,Excel会抛出错误。如果我将代码写入监视窗口,它返回正常。见下文
...
Dim NamedRange As Variant: NamedRange = Range(NamedRangeName)
...
Dim ReturnValue As Object
Set ReturnValue = NamedRange(RowIndex, ColumnToRetrieveIndex) 'Throws Run-time error 424. Object required
如果我写 NamedRange(RowIndex,ColumnToRetrieveIndex) 进入观察窗口,我可以看到细胞的正确值。
我不太了解VB,所以我想这只是某种语法错误,我想把它传递给ReturnValue,但我无法理解它。
答案 0 :(得分:7)
使用此
ThisWorkbook.Names("myNamedRange").RefersToRange(1,1)
从命名范围“myNamedRange”
中获取第一个单元格的值使用ThisWorkbook.Names
,您可以访问当前工作簿中所有工作表的所有命名范围。
使用RefersToRange
,您可以获得对实际范围的引用。
答案 1 :(得分:0)
这看起来像是方便记笔记的好地方(因为它是搜索结果的顶部):
如果将单元格命名为“ TopLeft”,则Sheets(1).Range("TopLeft").Value
获取内容,而Sheets(1).Range("TopLeft").Offset(2,3).Value
从2向下获取值,在此3处获取值。