2013-02-26 61 views
1

我试图从一个旧的,此代码创建一个新的区域名称:创建新的区域名称从= OFFSET范围名

Dim Range1 As Range 
    Set Range1 = ActiveWorkbook.Sheets("SheetName").Range("OldRangeName") 
    ActiveWorkbook.Names.Add Name:="NewRangeName", RefersTo:=Range1 

源区域(“OldRangeName”)定义为:

=OFFSET('SheetName'!$B$3,0,0,COUNTA('SheetName'!$B:$B)-2,1) 

但上面的代码而产生的NewRangeEnds限定不与上述= OFFSET,但与范围使得在= OFFSET结果

例如,新的范围可能是:。

='SheetName'!$B$3:$B$40 

我怎样才能有新的范围是一个= OFFSET公式像来源。

+2

我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2013-02-26 02:03:09

+0

'RefersTo:= Range1.Address'工作吗? – mkingston 2013-02-26 02:05:53

+2

'RefersTo:= Activeworkbook.Names(“OldRangename”)。RefersTo' – 2013-02-26 06:00:03

回答

0

变化RefersTo:=Range1RefersTo:=Range1.RefersTo

但这如果更改范围的名称才起作用:

Dim Name1 As Name 
Set Name1 = ActiveWorkbook.Names("OldRangeName") 
ActiveWorkbook.Names.Add Name:="NewRangeName", RefersTo:=Name1.RefersTo 
+0

完美,glh。非常感谢!! – RobertFrank 2013-02-27 20:58:29