| Sub matome2() Dim Sh Dim i As Integer Dim lRow As Long, lCol As Long, lRow2 As Long Application.ScreenUpdating = False sh_check Worksheets(3).Range("B6:J6").Copy Worksheets(2).Range("A1") Sh = Array("1", "2", "3", "4") For i = LBound(Sh) To UBound(Sh) With Worksheets(Sh(i)) lRow = .Cells(Rows.Count, 1).End(xlUp).Row lCol = .Cells(1, Columns.Count).End(xlToLeft).Column If lRow >= 7 Then lRow2 = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 1 .Activate .Range(Cells(7, 2), Cells(lRow, lCol)).Copy Worksheets(2).Cells(lRow2, 1).PasteSpecial xlPasteValues End If End With Next i Worksheets(2).Activate Range("A1").Select Application.ScreenUpdating = True End Sub
上記で入力してみたところ、構文エラーが出てしまいました。 原因がわかれば教えていただきたいです。 教えていただいた通り、(.PasteSpecial xlPasteValues)を追加してみたのですが、うまくいきません。 (追加前はデータコピーだけならできました)
ファイルをコピーしておき、このコピーファイルで不要なシートを削除して、データをまとめるVBAを動かします。 データをまとめることができたら、 まとめたシートを元のファイルへ移動またはコピーするのはいかがでしょう? →除外したいシートからコピー元データへデータ参照していたりします。 現状、Sh = Array("1", "2", "3", "4")参考にさせていただき、シートを指定してみたのですが、1〜31まで指定すれば可能なのでしょうか?
ご指導お願いします。
|