2

Excel VBAを使用して複数の範囲をコピーしようとしています。複数の範囲を選択するには、以下のような構文が使用されることを理解しています:

Range("A1:B4000, F1:F4000").Select

これは、適切な範囲を選択する際にうまく機能します。ただし、次のとおりです。

Range("A1:B4000, F1:F4000").Copy

...A1:B4000 範囲のみをコピーします。これは私が直面している最初の問題です。

次に、データを一番下の行に動的にコピーしたいと思いますが、これは必ずしも行 #4000 ではありません。単一の範囲を選択する場合、構文は次のようになります。

Range("A1", Range("B1").End(xlDown)).Copy

上記のコードは、A1 から B 列の下部にすべてを正常にコピーします。複数の選択に対してこれを行う方法を説明する資料がネット上に見つかりません。

私が本質的にやろうとしているのは、A1:B(下) と F1:F(下) をコピーすることですが、上記の 2 つの問題が私を止めています。これは構文の問題だと思います..?

4

2 に答える 2

3

「ユニオン」方式を使用します。

Dim range1 as Range, range2 as Range, multipleRangeAs Range    
Set range1 = Sheets("Sheet1").Range("A1:B4000")    
Set range2 = Sheets("Sheet1").Range("F1:F4000")    
Set multipleRange= Union(range1, range2)

その後、通常どおり mutipleRange をいじることができます。

于 2012-09-17T18:58:33.033 に答える
0

@Scott Holtzman は、コメントで解決策を提供しました。

OPがダイナミックレンジ名を要求したので、次のように調整します。 Set range1 = Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row) 本当の最後を取得する列Bのセル。列Fにも同じことを行います

于 2012-09-25T11:11:00.557 に答える