- ベストアンサー
VBA Range・Cellsプロパティについて
下記のコードについて質問致します。 Sub 特定のセルをコピー() Dim rw2 As Long Dim rw1 As Long Dim newdate As Date With Worksheets("steet1") rw2 = .cells(.Rows.Count, "c").End(xlUp).Row newdate = .Range("c" & rw2).value For rw1 = rw2 - 1 To 1 Step -1 If .Range("c" & rw1).value <> newdate Then Exit For Next rw1 .Range(.cells(rw1 + 1, 1), .cells(rw2, 1)).Copy '(1) Worksheets("steet2").Range("v6").PasteSpecial xlValue End With End Sub (1)部分のコードの意味が分かりません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Range(Cells(1,1),Cells(2,2)) Range(Range("A1"),Range("B2")) Range("A1:B2") どれも同じ意味です。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
セル範囲を指定してます。 Range("A3:B12")のようなイメージで、3や12の部分を 間接化(変数(質問の例でがrw1,rw2)にしておいて、実行直前までに値を決めてセットし、そのコードが実行され、結果としてRange("A3:B12")のようなのが実行される。 引数を変数化できるので、良く使われる技法です。 ーー Sub test02() rw1 = 2 rw2 = 12 s = "A" & rw1 & ":B" & rw2 Worksheets("Sheet1").Range(s).Select End Sub のような間接化法も可能でした。テスト済み。
お礼
ご丁寧な回答ありがとうございました。 とても参考になりました。
- 6dou_rinne
- ベストアンサー率25% (1361/5264)
cells(rw+1,1)とcells(rw2,1)を対角線とする範囲(Range)をCopyするです。
お礼
早速のご回答ありがとうございます。 意味がわかりました。
お礼
ご回答ありがとうございます。 非常にわかりやすい例を掲示していただいたので、理解できました。