たびたび申し訳ありません。
以下のマクロを使った場合にA列しかコピーしません。
これをA列~O列までをコピーするという指示を出したい場合どのようにすればいいでしょうか?
Sub matome()
Dim i As Integer
Dim lRow As Long, lCol As Long, lRow2 As Long
Application.ScreenUpdating = False
'----全データシートの有無をチェックします
'----列見出しをコピーします
Worksheets(2).Range("1:1").Copy Worksheets(1).Range("A1")
For i = 2 To Worksheets.Count
With Worksheets(i)
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
'----シートのデータが2行以上の場合にコピーします
If lRow >= 2 Then
lRow2 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
.Activate
.Range(Cells(2, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(lRow2, 1)
End If
End With
Next i
Worksheets(1).Activate
Range("A1").Select
Application.ScreenUpdating = True
End Sub
お礼
ありがとうございます。 頂いた内容をもとにマクロを作ったのですが、 重複していると言われます。 Sheet3つにしか対応していないようにも見えますが、私がしたい処理はSheetは10数枚以上あり、毎回Sheet数が違います。
補足
たびたび申し訳ありません。 以下のマクロを使った場合にA列しかコピーしません。 これをA列~O列までをコピーするという指示を出したい場合どのようにすればいいでしょうか? Sub matome() Dim i As Integer Dim lRow As Long, lCol As Long, lRow2 As Long Application.ScreenUpdating = False '----全データシートの有無をチェックします '----列見出しをコピーします Worksheets(2).Range("1:1").Copy Worksheets(1).Range("A1") For i = 2 To Worksheets.Count With Worksheets(i) lRow = .Cells(Rows.Count, 1).End(xlUp).Row lCol = .Cells(1, Columns.Count).End(xlToLeft).Column '----シートのデータが2行以上の場合にコピーします If lRow >= 2 Then lRow2 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1 .Activate .Range(Cells(2, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(lRow2, 1) End If End With Next i Worksheets(1).Activate Range("A1").Select Application.ScreenUpdating = True End Sub