从VBA中的命名范围中获取值
我想从命名范围中检索一个值。假设一个命名区域有X列和Y行。我想返回一个值,例如第2列第3行的值。我遇到的问题是,如果我编写代码并运行它,Excel会抛出一个错误。如果我将代码写入watch窗口,它将返回良好的结果。见下文从VBA中的命名范围中获取值,vba,excel,Vba,Excel,我想从命名范围中检索一个值。假设一个命名区域有X列和Y行。我想返回一个值,例如第2列第3行的值。我遇到的问题是,如果我编写代码并运行它,Excel会抛出一个错误。如果我将代码写入watch窗口,它将返回良好的结果。见下文 ... Dim NamedRange As Variant: NamedRange = Range(NamedRangeName) ... Dim ReturnValue As Object Set ReturnValue = NamedRange(RowIndex, Colu
...
Dim NamedRange As Variant: NamedRange = Range(NamedRangeName)
...
Dim ReturnValue As Object
Set ReturnValue = NamedRange(RowIndex, ColumnToRetrieveIndex) 'Throws Run-time error 424. Object required
如果我写
NamedRange(行索引、列检索索引)
在watch窗口中,我可以看到单元格的正确值
我对VB不太了解,所以我想这只是某种语法错误,我想如何将它传递到ReturnValue中,但我就是想不出来
ThisWorkbook.Names("myNamedRange").RefersToRange(1,1)
从命名范围“myNamedRange”中的第一个单元格获取值
使用ThisWorkbook.Names
可以访问当前工作簿中所有工作表的所有命名范围。
使用
referestorange
可以获得实际范围的引用。这看起来是一个方便的地方(因为它是顶级搜索结果):如果将单元格命名为“TopLeft”,则
Sheets(1).Range(“TopLeft”).Value
获取内容,Sheets(1).Range(“TopLeft”).Offset(2,3).Value
获取从2开始的值,3。在这里,这是有用的,但是如果你在名字管理器中把你的名字应用到一个特定的工作表中,你可能需要考虑一些类似于“代码> ActudieSeGET”的名字。