14

「X」という名前の範囲があり、これは 1000 行であり、これを動的に 100 に減らしたいと考えています。

試しRange("X").Resize(100,1)てみ.Resize(-900,0)ましたが、範囲ドロップダウンメニューから範囲を選択してExcelにチェックインすると、名前付き範囲のサイズが変更されないようです。私は何を間違っていますか?

4

2 に答える 2

32

「myRange」という名前の範囲があるとします。これを行う場合:

Dim r As Range
Set r = Range("myRange")
Debug.Print r.Resize(10, 1).Address

あなたが言っているのは、私はこの範囲を持っていますrmyRange初期状態として一致するように設定します。次に、別のサイズに変更rします。あなたがしたことは、サイズを変更したことrであり、 ではありませんmyRange

名前付き範囲のサイズを変更するには、次のようにする必要があります。

Dim wb As Workbook
Dim nr As Name

Set wb = ActiveWorkbook
Set nr = wb.Names.Item("myRange")

' give an absolute reference:
nr.RefersTo = "=Sheet1!$C$1:$C$9"

' or, resize relative to old reference:
With nr
    .RefersTo = .RefersToRange.Resize(100, 1)
End With
于 2012-06-14T12:28:59.653 に答える