• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAコピーしたセルを順番に張り付ける方法)

エクセルVBAコピーしたセルを順番に張り付ける方法

このQ&Aのポイント
  • 質問者は、VBAを使ってエクセルのセルをコピーし、別のシートに張り付ける方法について質問しています。
  • 質問者は、for文を使用した処理方法が分からないため、助けを求めています。具体的には、A列からB列にテキストがある場合に、B列のセルが入力されている行全体を別のシートにコピーして貼り付けたいと考えています。
  • 質問者は、コピーの部分まではうまく実装できたが、貼り付ける際に行が上書きされてしまう問題が発生していると述べています。また、すでに貼り付けられた行がある場合は、その下に新たに行を追加して貼り付ける方法を知りたいとしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>B列のセルに文字が有れば >その行全体をコピーして >【貼り付け】シートに張り付けたいのですが 参考に Sub test() Dim i As Long Dim io As Integer For io = 2 To Worksheets.Count For i = 1 To 100 With Worksheets("貼り付け") If Worksheets(io).Cells(i, "B").Value <> "" Then Worksheets(io).Rows(i).Copy .Rows(.Cells(Rows.Count, "B").End(xlUp).Row + 1) End If End With Next Next End Sub

その他の回答 (1)

  • SI299792
  • ベストアンサー率47% (774/1620)
回答No.1

説明とプログラムが違っているのですが。 プログラムでは、B列を参照していません。 説明を信じてB列に文字がある場合のみ行コピーをするなら Option Explicit ' Sub Macro1()   Dim Sheet As Integer   Dim I As Worksheet   Dim RInp As Long   Dim ROut As Long '   Sheets(1).Select   Cells.ClearContents   Application.ScreenUpdating = False '   For Sheet = 2 To Sheets.Count     Set I = Sheets(Sheet) '     For RInp = 1 To I.Cells(Rows.Count, "B").End(xlUp).Row       If I.Cells(RInp, "B") > "" Then         ROut = ROut + 1         Rows(ROut) = I.Rows(RInp).Value       End If   Next RInp, Sheet End Sub オートフィルターで絞って1度にコピーする方法もありますが、1行目からなので今回は使っていません。 違っていたら補足に書いて下さい。

関連するQ&A