none
vba 複数の別シートのデータを一つのシートにコピーする際のfor nextでの処理について RRS feed

  • 質問

  • vbaで複数の別シートに同じフォーマットでそれぞれデータが入っているのですが、それぞれのシートをまとめて一つのシートにコピーをしていき、コピーをして値が入っている最終行一つしたから別シートのデータを順に貼付けていきたいのですが、for nextで作成したのですが、一番最後に選択したシートの値しか入らず困っています。

    selectのみループ処理が走っており、最後に貼付けを行っているようなのですが、現任がわからないのでご教示いただけないでしょうか。

    Public Sub テスト()


    Application.ScreenUpdating = False
      
     Dim i As Long
     For i = 4 To Worksheets.Count
     Sheets(i).Select
     Sheets(i).Range("B6").CurrentRegion.Select 'ここまでループ処理されているように感じます
     Selection.relize(Selection.Rows.Count).Copy '最後のシートでコピーし貼付けしている
     Sheets("集計").Select
     Sheets("集計").Range("B6").PasteSpecial
     Next i
     
      
    Application.CutCopyMode = True
    End Sub


    2018年3月28日 14:40

すべての返信

  • 「値が入っている最終行一つしたから別シートのデータを順に貼付けていきたい」の部分が全く記述されていないのが原因です。

    B5のセルに何か見出し等の入力があるのなら、「Sheets("集計").Range("B6").PasteSpecial」を以下の様に変更します。

    Sheets("集計").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial

    B5に何も入力ないなら、以下の様にしてみて下さい。

            If i = 4 Then
                Sheets("集計").Range("B6").PasteSpecial
            Else
                Sheets("集計").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial
            End If

    2018年3月28日 23:06
  • 回答ありがとうございます。無事コピーする事が出来ました。
    2018年3月29日 3:25