[[20150624102752]] 『VBA 複数のシートのデータを1つにまとめたい』(しげ) ページの最後に飛ぶ

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

 

『VBA 複数のシートのデータを1つにまとめたい』(しげ)

各シートの構成は

シート5・・・データ1
シート6・・・データ2
シート7・・・データ3
シート8・・・データ4
シート9・・・全データ

シート5〜8のデータは5000行前後で固定していません。

行は1行目に項目、2行目以降がデータが入力されます。
列はA〜V列まで使用していて、シート5〜9すべて行・列共に同じ構成です。

シート9(全データ)にシート5〜8(データ1〜4)のデータ(2行目〜N行)をコピペしたいです。(シート5〜8はデータがない場合もあります)

よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 しげさん、こんにちは。

 VBAではありません。
 データが連続しているなら以下の作業を4回繰り返してできないでしょうか?

 シート5から8で行う操作
 1.データが記録されているか目視し、記録されていたら2に進む。
 2.データの範囲内で[Ctrl]キーと[Shift]キーを押しながら[*]キーを押す。
 3.[Ctrl]キーを押しながら[C]キーを押す。
 4.シート9を選択する。

 シート9で行う操作
 5.名前ボックスに A1048576 と入力して[Enter]キーを押す。
 6.[Ctrl]キーを押しながら[↑]キーを押す。
 7.[↓]キーを押す。
 8.[Ctrl]キーを押しながら[V]キーを押す。
 9.アクティブセル(項目名)のある行番号を右クリックする。
 10.ショートカットメニューから「削除」をクリックする。
 11.1.に戻る。
(OtenkiAme) 2015/06/24(水) 13:05

OtenkiAmeさん

ありがとうございます。
でもVBAでやりたいんですよね。。。


 ちょっと訂正(14:35)

 一例です。

 Sub Test()
    Dim fsh As Worksheet
    Dim tSh As Worksheet

    Application.ScreenUpdating = False

    Set tSh = Worksheets("Sheet9")
    'Sheet9の2行目以降をクリア
    If tSh.UsedRange.Rows.Count > 1 Then tSh.UsedRange.Offset(1).ClearContents

    For Each fsh In Worksheets(Array("Sheet5", "Sheet6", "Sheet7", "Sheet8"))
        'データ行があるシートのみ実行
        If fsh.UsedRange.Rows.Count > 1 Then fsh.UsedRange.Columns("A:N").Offset(1).Copy tSh.Range("A" & tSh.Rows.Count).End(xlUp).Offset(1)
    Next

    tSh.Select

 End Sub

(β) 2015/06/24(水) 14:32


βさん

ありがとうございます。
無事完成しました!


コメント返信:

[ 一覧(最新更新順) ]


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