No2の処理をそのままマクロ化したものです
Sub test()
dd = Worksheets("Sheet2").Range("A1") '抽出月データを変数ddに収納(月データはその月に該当するシリアル値で指定してくださ)
d = Year(dd) & Month(dd) '抽出月データを比較用のデータ文字列に変換
Set sc = Worksheets("Sheet2").Range("A10") '出力先のセル番地を変数scへ収納
Worksheets("Sheet1").Range("c1").Select
While ActiveCell <> "" 'シート2のC列データ最終行までの繰り返し
With ActiveCell
If Year(.Value) & Month(.Value) = d Then 'C列の日付が抽出月かどうかを確認
'----ここから----
sc.Offset(i, 0) = .Offset(0, -2)
sc.Offset(i, 1) = .Offset(0, -1)
sc.Offset(i, 2) = .Offset(0, 1)
sc.Offset(i, 3) = .Offset(0, 3)
sc.Offset(i, 4) = .Offset(0, 21)
'----ここまでで必要なデータを対象のセルに貼り付け----
i = i + 1 'データの貼り付け先を行を1つ下げるための処理
End If
.Offset(1).Activate 'C列の参照データ行を一つ下げる処理を
End With
Wend 'ループします
End Sub
お礼
回答ありがとうございます。 イメージどおりの動作が出来ました。 >sc.Offset(i, 0) = .Offset(0, -2) マクロが良く分かっていないので、変なコメントを入れて しまいましたが、これで必要な分だけ貼り付けができるの で非常に便利です。 >dd = Worksheets("Sheet2").Range("A1") シリアル値にしないとダメなんですね。 これは素人目に認識しにくいので、年と月を別セルに入力 させて、date関数で引っ張りだすようにしました。これな らシリアル値を意識させる事なく使えそうです。。。。 なんとか、目的の処理を実行させることができました。 ありがとうございます。