【问题标题】:Referencing global named range without referencing worksheet引用全局命名范围而不引用工作表
【发布时间】:2014-10-06 17:05:08
【问题描述】:

我想将数据从工作簿 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 vba range


    【解决方案1】:

    使用相应 Workbook 对象的属性 Names 来引用全局名称。

    【讨论】:

    • 例如Set rng = ThisWorkbook.Names("NamedRange").RefersToRange
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 2010-10-31
    • 2012-05-03
    相关资源
    最近更新 更多