从= OFFSET范围名称创建新范围名称

时间:2013-02-26 01:48:55

标签: vba excel-vba excel

我正在尝试使用以下代码从旧版本创建新的范围名称:

  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

如何将新范围设为an = OFFSET公式,如源。

1 个答案:

答案 0 :(得分:0)

RefersTo:=Range1更改为RefersTo:=Range1.RefersTo

但是只有将范围更改为名称时才会有效:

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