首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有来自另一个命名范围的地址的命名范围

具有来自另一个命名范围的地址的命名范围
EN

Stack Overflow用户
提问于 2015-09-01 20:25:09
回答 2查看 55关注 0票数 0

我有如下代码,我想添加命名范围,其中地址是与其他命名范围连接,下面的代码不工作,提前感谢所有的想法。

代码语言:javascript
复制
ActiveWorkbook.Names.Add _
        Name:="somerange", _
        RefersTo:="=Sheet1!Cells(Range("namedrange1").row-5,Range("namedrange2").column)"
EN

回答 2

Stack Overflow用户

发布于 2015-09-01 22:15:17

通过将命名范围namedrange1定义为具有工作簿作用域的RefersTo:=Sheet2!$B$7,以及将命名范围namedrange2定义为具有工作簿作用域的RefersTo:=Sheet3!$D$10,这将定义一个新的命名范围,命名范围为具有工作簿作用域的RefersTo:=Sheet1!$D$2somerange

代码语言:javascript
复制
With ActiveWorkbook
    With .Worksheets("Sheet1")
        With .Cells(Range("namedrange1").Row - 5, Range("namedrange2").Column)
            .Name = "somerange"
        End With
    End With
End With
票数 2
EN

Stack Overflow用户

发布于 2015-09-01 20:38:10

假设namedrange1是一个已定义的命名范围,您只需像编写常规公式那样编写它:

ActiveWorkbook.Names.Add "somerange", "=OFFSET(Sheet1!NamedRange1,-5,0,1)"

在您的代码中,您可以引用两个单独的工作表- Sheet1.Cells和ActiveSheet.Range -如果您不显式引用工作表名称,它将使用活动工作表。你有效地写下了:"=Sheet1!Cells(ActiveSheet.Range("namedrange1").row-5,ActiveSheet.Range("namedrange2").column)"

编辑:你的代码似乎是公式和VBA代码的组合-- Sheet1!用于引用公式中的另一个工作表,与.Row和.Column一样,单元格也是VBA类型引用

编辑2:你也可以使用:ActiveWorkbook.Names.Add "SomeOtherRange", "=" & Sheet1.Range("NamedRange1").Offset(-5).Resize(1).Address,但这将硬编码地址-当你检查你的命名范围时,它看起来像:=Sheet1!$I$5 (如果你的命名范围以单元格$I$10开始)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32331601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档