1

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

  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 公式。

4

1 回答 1

0

更改RefersTo:=Range1RefersTo:=Range1.RefersTo

但这仅在您将范围更改为名称时才有效:

Dim Name1 As Name
Set Name1 = ActiveWorkbook.Names("OldRangeName")
ActiveWorkbook.Names.Add Name:="NewRangeName", RefersTo:=Name1.RefersTo
于 2013-02-26T11:38:29.240 回答