引用全局命名范围而不引用工作表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引用全局命名范围而不引用工作表相关的知识,希望对你有一定的参考价值。

我想将工作簿x中的一组命名范围中的数据导出到工作簿y中的另一组范围。要导出和输出的范围的名称在表“Table_Export”中指定。问题是我不想在这些相应的范围所在的工作表中加注,看到我不知道实际的工作表名称。但由于范围是全局的,因此应该可以在vba中引用它们而不引用相应的工作表?

相关代码可以在下面找到,其中if语句中的两个星号行中的任何一行都是我想要完成的。

Dim x As Workbook, y As Workbook    
Set x = ThisWorkbook
Set y = Workbooks.Open(Range("Export_to").Value)

Dim export_control As ListObject    
Set export_control = x.Sheets("Control").ListObjects("Table_Export")

Dim lr As Excel.ListRow    
For Each lr In export_control.ListRows
    If lr.Range(1).Value <> 0 Then    
        *'y.Names(lr.Range(2).Value).RefersToRange.Value = x.Names(lr.Range(1).Value).RefersToRange.Value*    
        *'y.Range(lr(Range(2).Value).Value = x.Range(lr(Range(1).Value).Value*    
    End If
Next
答案

使用相应工作簿对象的“属性名称”来引用“全局名称”。

以上是关于引用全局命名范围而不引用工作表的主要内容,如果未能解决你的问题,请参考以下文章

使用间接引用时,动态命名范围不起作用

交叉引用具有工作表编号的单元格

将 Excel 命名范围读入 pandas DataFrame

当另一个工作簿处于活动状态时,UDF 引用命名表错误

复制工作表而不复制代码

C语言局部变量与全局变量重名时的优先级问题(当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量)