从VBA中的命名区域获取值

use*_*589 1 excel vba excel-vba

我想从命名范围中检索一个值.想象一下具有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
Run Code Online (Sandbox Code Playgroud)

如果我将NamedRange(RowIndex,ColumnToRetrieveIndex)写入监视窗口,我可以看到该单元格的正确值.

我不太了解VB,所以我想这只是某种语法错误,我想把它传递给ReturnValue,但我无法理解它.

Bar*_*rry 8

用这个

ThisWorkbook.Names("myNamedRange").RefersToRange(1,1)
Run Code Online (Sandbox Code Playgroud)

从命名范围"myNamedRange"中的第一个单元格中获取值

随着ThisWorkbook.Names您可以在当前工作簿中访问的所有表的所有指定范围.随RefersToRange你获得实际范围的参考.


AjV*_*Jsy 5

这看起来是一个放置方便注释的好地方(因为它是顶部搜索结果):
如果将单元格命名为“TopLeft”,则Sheets(1).Range("TopLeft").Value 获取内容,并Sheets(1).Range("TopLeft").Offset(2,3).Value获取从 2 向下、3 向下的值。