プロが教えるわが家の防犯対策術!

コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーして集計シートへ縦に並べて貼り付けしたく、下記コードを書きましたが、実行結果は図のように100003の1行目しか貼り付けられません?
イメージは図の赤枠へも貼付けができるようにしたいのですが、どのような修正を加えたらよいか教えていただけませんでしょうか。よろしくお願いいたします。

Sub 条件に合うデータを別シートへ()
Dim Matome_Sht As Worksheet
Dim Ws As Worksheet
Dim i As Long
Dim j As Long
'転記先のシートを変数格納
Set Matome_Sht = Sheets("集計")
'「まとめ」シート 1~最終行までループ
For i = 1 To Matome_Sht.Cells(Rows.Count, 1).End(xlUp).Row
'全シートをループ
For Each Ws In Worksheets
'「まとめ」シートのA列とシート名が一致したら
If Matome_Sht.Cells(i, 1) = Ws.Name Then
'シートの1~最終行までループ
For j = 1 To Ws.Cells(Rows.Count, 1).End(xlUp).Row
'シート名とA列が一致していたら「まとめ」シートに転記
If Ws.Name = Ws.Cells(j, 1) Then
Ws.Select
Ws.Range(Cells(j, 2), Cells(j, 12)).Copy Matome_Sht.Cells(i, 2)
End If
Next j
End If
Next Ws
Next i
End Sub

質問者からの補足コメント

  • イメージの図です。よろしくお願いします。

    「コード名シートA列と集計シートA列のコー」の補足画像1
      補足日時:2022/08/29 23:48
  • ご回答いただいた[複数行のセル範囲(Range)をまとめてコピペすることで複数行を一括してコピーする方法]が知りたいです。よろしくお願いします。

      補足日時:2022/08/30 09:26
  • Ws.Range(Cells(j.2).Cells(8.12).Copyで動きました。
    しかし複数シートのA列が非表示になっており、実際にはB列でした?B列と集計シートA列が一致したらコピーに変更するには?ご教授頂けると助かります。

      補足日時:2022/08/30 10:40

A 回答 (1件)

こんばんは



なにをなさりたいのかよくわかりませんけれど・・・

>100003の1行目しか貼り付けられません?
理由はご提示のコードがそのようになっているから。

>If Ws.Name = Ws.Cells(j, 1) Then
>Ws.Range(Cells(j, 2), Cells(j, 12)).Copy Matome_Sht.Cells(i, 2)
『A列が一致した1行をコピーする』処理を繰り返していますが、想像するところA列が一致しているのはシート内に1行しかないのではないでしょうか?
コピーしたい行のA列に、同じ値を入れておけば、その行もコピーされるようになります。
ただし、コピー先の行( =i )が固定なので、同じ行に上書きされてペーストされます。
(なので、最後にペーストした内容が有効になります)

ペースト先も移動したければ、ペースト先の行を制御するか、あるいは、複数行のセル範囲(Range)をまとめてコピペすることで複数行を一括してコピーすることも可能です。
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2022/08/30 09:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!