VBAでわかる方教えて下さい。 1つのbookに30シートほどデータが入ってます。 それらを全て縦に統合したいのですが中々うまくいきません。

Visual Basic | Excel81閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

試しました。。 >そのままのサイズで・・ごめんなさい カラム巾コピーできませんね。すべてのシートフォーマットが同じ場合なら・・ Dim ws As Worksheet Dim i As Integer, r As Long Worksheets.Add Before:=Sheets(1) ActiveSheet.Name = "統合シート" Set ws = ActiveSheet For i = 2 To Worksheets.Count r = ws.UsedRange.Rows.Count + 2 If i = 2 Then Worksheets(i).Cells.Copy ws.Cells(1, 1) Else Worksheets(i).UsedRange.EntireRow.Copy ws.Rows(r) End If Next i

ThanksImg質問者からのお礼コメント

皆様の回答を合わせて色々やってたら出来ました。 ベースにさせていただきましたこちらの回答をベストアンサーに選ばせて頂きます。 有難う御座いました。

お礼日時:7/4 9:46

その他の回答(1件)

0

前者を改修して作ってみました。 一番左のシートにボタンを追加して割り当てて使用してください。 左から2番めのシートに生成されるように作っています。 2回連続でボタンを押すと前回作ったシート分もくっついてしまうので、手動で消す必要あり。 >表や背景色などはそのままでしたが、結合セルが1セルになってました。 >(例えばBCDセルを結合して文字が入ってたのにBだけになり、Eに入ってた文字がスライドしてCに入るみたいな。) こちらの現象が確認できなかったので、直っているか不明です。 Dim i As Long, ad As Integer, r As Long, endCell As Range, ws As Worksheet Set ws = Sheets.Add(after:=Sheets(1)) For i = 3 To Sheets.Count With Sheets(i) Set endCell = .UsedRange.Item(.UsedRange.Rows.Count, .UsedRange.Columns.Count) .Range(.Cells(1, 1), endCell).Copy r = ws.UsedRange.Rows.Count If i = 3 Then ad = 0 Else ad = 3 ws.Cells(r, 1).Offset(ad).Select ws.Paste End With Next ws.Columns.AutoFit

回答ありがとうございます。 試してみましたらやはり結合セルが分離させてました。 非常に細かい指定で申し訳ないです。 結合セルをそのまま移動って難しいんですね。 ありがとうございます。