[[20060407183749]] 『同じブック内で1シートにまとめるマクロについて』(tuccii) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同じブック内で1シートにまとめるマクロについて』(tuccii)

1ブックの中に9シートあり 8シートの内容を9シート目(まとめシート)に
転記するマクロにしたいのです。

各シートのタイトル行が4列目まであります。

すべてのシートが同じフォーマットで列の長さ以外違いはありません。

まとめシートには5行目からをシート順に転記していきたいのですが
タイトル4行まで転記されてしまいます。

Sub まとめ()

  Dim LastR As Long, TgtR As Long
  Dim Sh As Worksheet, TgtSh As Worksheet

  Set TgtSh = Sheets("まとめシート")

  Application.ScreenUpdating = False
  TgtR = 3
  TgtSh.Rows("4:" & TgtSh.Range("A65536").End(xlUp).Row).Delete
  For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name <> TgtSh.Name Then
      With Sh
        LastR = .Range("A65536").End(xlUp).Row - 1
        .Rows("2:" & LastR).Copy TgtSh.Rows(TgtR)
      End With
      TgtR = TgtSh.Range("A65536").End(xlUp).Row + 1
    End If
  Next
  Application.ScreenUpdating = True
End Sub

どこを変更したら
各シートの5行目からをまとめシートにうまくコピーできるのでしょうか。


 とりあえず、tucciiさんのコードをいかすと
 こんな感じでしょうか?
 
Sub まとめ()
  Dim LastR As Long, TgtR As Long
  Dim Sh As Worksheet, TgtSh As Worksheet
  Set TgtSh = Sheets("まとめシート")
  Application.ScreenUpdating = False
  TgtR = 5
  TgtSh.Rows("5:" & TgtSh.Range("A65536").End(xlUp).Row).Delete
  For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name <> TgtSh.Name Then
      With Sh
        LastR = .Range("A65536").End(xlUp).Row - 1
        If LastR > 5 Then
            .Rows("5:" & LastR).Copy TgtSh.Rows(TgtR)
        End If
      End With
      TgtR = TgtSh.Range("A65536").End(xlUp).Row + 1
    End If
  Next
  Application.ScreenUpdating = True
End Sub

 (キリキ)(〃⌒o⌒)b


キリキさん!

遅くなりましたがうまくマクロがまわりました。

直す箇所がわかったので
タイトル行数が変更されても対応できます。

ありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.