3

望ましい結果を生み出す情報や解決策を見つけるのに問題があるので、ここに行きます。

現在、おそらく生産時に、ワークシートに「テンプレート」という名前の範囲があります。最初の使用では、この NamedRange は だけですrngNamed1が、最初の使用後は、これに類似した名前付き範囲がさらに存在する可能性がありますrngNamed30

まで構築した後の 2 回目の実行rngNamed30で、NamedRange をさらに 3 つ追加する必要があるとしましょうrngNamed33

基本的に、最後の名前付き範囲の最後の行と列を見つける必要があるため、データのコピーをどこから開始して次の名前付き範囲を宣言するかを知っています。

私がこれまでに試したこと:

Dim rng As range
Set rng = range("rngNamed1")
'Set rng = rng.Find("*", rng.Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False)
Debug.Print rng.Find("*", rng.Cells(1, 1), , , , xlPrevious).Address

そこにあるほとんどのソリューションの問題は、データを含む最後のセルを見つけることに基づいていることです。データが含まれているかどうかに関係なく、範囲の最後のセルを知る必要があります。

4

1 に答える 1

7

これは、行と行を使用して簡単に行うことができます。範囲のカウント:

Sub NextRowAfterRange()
    Dim ws As Worksheet
    Dim rangeNom As String
    Dim nextRow As Long

    ' Enter desired name here
    rangeNom = "rngName1"

    Set ws = ActiveSheet

    nextRow = ws.Range(rangeNom).Row + ws.Range(rangeNom).Rows.Count

    MsgBox nextRow
End Sub
于 2012-09-25T18:45:48.883 に答える