決まったシートだけコピーして一つのシートにまとめる
お世話になります。
http://okwave.jp/qa/q8216220.html
で質問させていただいたVBAをこねくり回してみたのですが、「インデックスが有効範囲にありません」というエラーがでて進まなくなってしまいました。
Sub 特定のシートだけコピーと貼り付け()
Dim k As Long, endRow As Long, wS As Worksheet
Dim P As Variant
P = Array("全", , "A", "B", "C", "D", "E", "F", "G", "H", "I")
'↑コピーしたいシート名一覧
Set wS = Worksheets("まとめ")
endRow = wS.cells(Rows.Count, "B").End(xlUp).Row
If endRow > 4 Then
Range(wS.cells(5, "B"), wS.cells(endRow, "M")).ClearContents
End If
For k = LBound(P) To UBound(P)
☆If Worksheets(k).Name <> "まとめ" Then 'ワークシート名が"まとめ"のとき
endRow = Worksheets(P).cells(Rows.Count, "B").End(xlUp).Row 'P=Arrayで指定しているシートのセルで
If endRow > 4 Then '4行目より下を
Range(Worksheets(P).cells(5, "B"), Worksheets(P).cells(endRow, "M")).Copy _
wS.cells(Rows.Count, "B").End(xlUp).Offset(1)
'B5からM列の任意のデータが入っているセルまでコピーして"まとめ"シートに貼り付け
End If '繰り返す
End If '繰り返す
Next k '次のシートへ
End Sub
自分で分かるようにコメントを付けています。
☆のついているところで、「インデックスが有効範囲にありません」と出ます。
指定したシートに"まとめ"を追加してみてもやはり同じでした。
調べたところ、「インデックスが~」というのはVBA中の範囲にないものを指定しているからだ、ということなのですが・・・。
お知恵を貸して下さい。よろしくお願いします。
お礼
詳しい説明ありがとうございました。 これでうまく出来ました。 ありがとうございました。 これからも宜しくお願いします。