
コード名シート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
No.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)をまとめてコピペすることで複数行を一括してコピーすることも可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
実行時エラー1004「Select メソ...
-
エクセルの絶対参照の一括操作...
-
excelのマクロで該当処理できな...
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBAでのチェックボックスの自動...
-
書式のみを変更できなくする方法
-
エクセルVBA Ifでシート名が合...
-
ExcelのVBAを使い、複数シート...
-
IFステートの中にWithステート...
-
ワークシートを追加したときの...
-
Excel チェックボックスにチェ...
-
vbaでworksheetfunctionでの複...
-
エクセルで通し番号を入れてチ...
-
XL:BeforeDoubleClickが動かない
-
【VBA】色のついたシート名を取得
-
ドット絵への変換について
-
特定の文字を含むシートだけマ...
-
【Excel VBA】全シートのデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報
イメージの図です。よろしくお願いします。
ご回答いただいた[複数行のセル範囲(Range)をまとめてコピペすることで複数行を一括してコピーする方法]が知りたいです。よろしくお願いします。
Ws.Range(Cells(j.2).Cells(8.12).Copyで動きました。
しかし複数シートのA列が非表示になっており、実際にはB列でした?B列と集計シートA列が一致したらコピーに変更するには?ご教授頂けると助かります。