2017-11-23 3 views
-1

v15でCells()関数を使用してI15:R15とI20:R20を選択します。行番号は常に異なるため、Rangeは使用できません。vbaでCells関数を使用して範囲を選択する

まず、I15:R15とI16:R16をコピーしてシートに貼り付けます。
次回はI15:R15とI17:R17をコピー&ペーストしたいと思います。次にI15:R15とI18:R18 .....をコピー&ペーストしたいと思います。

Range()関数を使用すると、常にI15:R15またはI15:S15などのコピーを行うかどうかわかりませんが、基本的にI15は固定されています。 。RまたはSまたはTが決定されていない

+0

'行番号は常に異なるものになるよう範囲を使用することはできません。 '範囲をうまく使うことができます。その例は[最後の行の検索]です(https://stackoverflow.com/questions/71180/how-can-i-find-last-row-that-c​​ontains-data-in- the-excel-sheet-with-a-macro)。あなたの質問については、非連続セルに対して 'Cells()'だけを使うことはできません。 – L42

+0

あなたがする必要があることを説明してください?なぜあなたは '選択 'する必要がありますか?コピーする必要がある場合、または他の機能を使用する場合は、これは「選択」せずに行うことができます。また、ダイナミックな最終行を見つけようとしているのか、それとも正確に何かを説明しようとしていますか?あなたが達成しようとしているものについていくつかの有用な情報を提供すれば、私たちはあなたにもっと良い解決策を提供することができます –

+0

私はここに投稿する構文を試すことができます[https://stackoverflow.com/a/30406676/ 2685412) – L42

答えて

0

を更新し、ポストを読んだ後、あなたは以下のコードのようなものを探しています:

Dim Rng As Range 
Dim i As Long 

For i = 16 To 20 
    ' Set a dynamic range of "I15:R15" and another row, starting from row 16 and incrementing untill 20 
    Set Rng = Application.Union(Range(Cells(15, "I"), Cells(15, "R")), Range(Cells(i, "I"), Cells(i, "R"))) 
    Rng.Copy 

    ' do your Paste code here 

    Set Rng = Nothing 
Next i 
+0

はい、正確です。 Shai Radoありがとう! –

関連する問題