|
[46222]での質問では、下記の回答を ichinoseさんより頂きました。大変、お世話になりました。
今回は、下記のような追加コードを希望しています。
[46222]の内容
次のようなプログラムを希望しています。
1.A列に数値が入力されています。数値は昇順で、連番です。 (ダブりはありません)
2.A列に対応して、C列に日付が入力されます。これも昇順ですが、ダブりがあります。
例えば、2007/1/1がC1からC10に同じく入力、2007/1/27がC50からC54に入力されています。
3.A列を、下記の条件でsheet2のV列のセルV6を先頭とするセルにコピーしたい。
条件・・C列に入力される最新の日付(1番新しい日付)に対応している、A列のセルだけをコピーする。
2.の例だとA50からA54だけをコピーする。
Sub main()
Dim rw2 As Long
Dim rw1 As Long
Dim newdate As Date
With Worksheets("sheet1")
rw2 = .Cells(.Rows.Count, "c").End(xlUp).Row
' ↑ここをaからcに変える
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
Worksheets("sheet2").Range("v6").PasteSpecial xlValue
Application.CutCopyMode = False
End With
End Sub
追加質問
上記の該当するA列のセルのうち「上から3番目のセルから最終セルまで」をsheet2のセルC2を先頭とする列にコピーしたい。
上記の例だと、A52 A53 A54をコピーする。
これが質問の内容です。よろしくご教授お願いします。
|
|