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:=Range1に変更RefersTo:=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 に答える