Note: The other languages of the website are Google-translated. Back to English
ログイン  \/ 
x
or
x
今すぐ登録  \/ 
x

or

ワークシートまたはワークブックをXNUMXつのワークシートにマージまたは統合するにはどうすればよいですか?

私たちの日常業務では、Excelで[コピーして貼り付け]コマンドを使用すると、データを分析するために数百枚のシートまたはブックをXNUMX枚のシートにマージするという問題が発生する場合があります。 このチュートリアルでは、この仕事をすばやく解決するためのヒントをいくつか紹介します。

ドキュメント結合1

クイックナビゲーション

アクティブなブックのすべてのシートをVBAを使用してXNUMXつのシートにマージする
数十枚のシートまたはワークブックをXNUMXつのワークシート/ワークブックにクリックでマージ
XNUMXつのテーブルをXNUMXつにマージし、クリックで列ごとに更新します
サンプルファイルをダウンロードする


アクティブなブックのすべてのシートをVBAを使用してXNUMXつのシートにマージする

このセクションでは、実行中にアクティブなブックのすべてのシートを収集するための新しいシートを作成するVBAコードを提供します。

1.すべてのシートを結合するワークブックをアクティブにしてからを押します + 開くキー アプリケーション向け Microsoft Visual Basic 窓。

2.ポップウィンドウで、をクリックします インセット > モジュール 新しいモジュールスクリプトを作成します。

3.以下のコードをコピーして、スクリプトに貼り付けます。

Sub Combine()
'UpdatebyExtendoffice
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
ドキュメント結合2

4。 押す F5 キーを押すと、シート全体のすべてのデータが、すべてのシートの前面に配置されるCombinedという名前の新しいシートにマージされます。


移動する

あなたは昇給と家族と一緒に多くの時間を過ごしたいですか?

Officeタブは、現在作業中のMicrosoft Officeで効率を50%向上させます

信じられないほど、XNUMXつ以上のドキュメントで作業する方が、XNUMXつで作業するよりも簡単で高速です。

よく知られているブラウザと比較して、Officeタブのタブ付きツールはより強力で効率的です。

毎日何百ものマウスクリックとキーボード入力を減らして、今すぐマウスの手に別れを告げましょう。

通常、複数のドキュメントで作業する場合は、Officeタブを使用すると時間を大幅に節約できます。

30日無料トライアル、クレジットカードは必要ありません。

続きを読む 今すぐダウンロード


数十枚のシートまたはワークブックをXNUMXつのワークシート/ワークブックにクリックでマージ

VBAを使用すると、アクティブなブック内のシートのみを組み合わせることができますが、ブック間でシートをシートまたはブックにマージするにはどうすればよいですか?

ブック全体のシートをXNUMXつのシートにマージします
ドキュメント結合18

ブック全体のシートをXNUMXつのブックにマージします
ドキュメント結合3

この仕事を解決し、シートの組み合わせに関する他の要件を満たすために、 組み合わせる 関数は、次のXNUMXつの組み合わせシナリオで開発されました。

  • 複数のシートまたはワークブックをXNUMXつのシートに結合します
  • 複数のシートまたはワークブックをXNUMXつのワークブックに結合する
  • 同じ名前のシートをXNUMXつのシートに結合します
  • シートまたはワークブック全体の値をXNUMXつのシートに統合します

次に、XNUMX番目のオプションをインスタンスとして使用します。

複数のシートまたはワークブックをXNUMXつのワークブックに結合する

後の 無料インストール Kutools for Excel、以下のようにしてください:

1. Excelをアクティブにして、をクリックします クツールズプラス > 組み合わせる、ダイアログがポップアップ表示され、結合するワークブックを閉じる必要があることを通知します。 クリック OK 続行します。
ドキュメント結合4
ドキュメント結合5

2。 の中に ワークシートを組み合わせるステップ1 ダイアログ、チェック ワークブックの複数のワークシートをXNUMXつのワークブックに結合します オプション。 クリック ウィザードの次のステップに進みます。
ドキュメント結合6

3。 クリック 追加 > フィレット or フォルダ 結合するワークブックをに追加するには ワークブックリスト ペインで、名前をチェックすることにより、どのワークシートを結合するかを指定できます。 ワークシートリスト ペイン。 クリック ウィザードの最後のステップに進みます。
ドキュメント結合7

4.このステップでは、必要に応じて設定を指定します。 次に、をクリックします 終了.
ドキュメント結合8

5.結合されたブックを配置するフォルダーを選択するためのウィンドウがポップアップし、[ セールで節約.
ドキュメント結合9

これで、ワークブックがXNUMXつのワークブックにマージされました。 また、すべてのシートの前面に、Kutools for Excelという名前のマスターシートも作成され、シートに関する情報と各シートのリンクが一覧表示されます。
ドキュメント結合10

デモ:シート/ワークブックをXNUMXつのシートまたはワークブックに結合します

Kutools for Excel:200+便利な便利なツール。Excelの複雑なタスクを数回クリックするだけで簡単に行えます。

今すぐマウスの手と頸椎症に別れを告げる

Kutools for Excelの300の高度なツールは、80%のExcelタスクを数秒で解決し、何千ものマウスクリックからあなたを引き出します。

1500の作業シナリオに簡単に対処でき、ソリューションを探すために時間を無駄にする必要がなく、人生を楽しむための多くの時間があります。

もちろんあなたも含めて、毎日80人以上の非常に効果的な人々の生産性を110000%向上させます。

痛みを伴うフォーミュラやVBAに悩まされることはもうありません。脳を休ませ、楽しい働きをしてください。

フル機能を備えた30日間の無料トライアル、理由なしに30日間の返金。

より良い体はより良い生活を創造します。


XNUMXつのテーブルをXNUMXつにマージし、クリックで列ごとに更新します

XNUMXつのテーブルをXNUMXつにマージし、以下のスクリーンショットに示すように列に基づいてデータを更新する場合は、 テーブルマージ の有用性 Kutools for Excel.
ドキュメント結合11

Kutools for Excel:複雑なタスクをExcelで数回クリックするだけで簡素化する、200を超える便利なExcelアドイン

後の 無料インストール Kutools for Excel、以下のようにしてください:

1。 クリック クツールズプラス > テーブルマージ 有効にする テーブルマージ ウィザードを起動します。
ドキュメント結合12

2.ウィザードのステップ1で、メインテーブルとルックアップテーブルの範囲を個別に選択する必要があります。 次に、をクリックします .
ドキュメント結合13

3.ベースのメインテーブルのデータを更新するキー列をチェックします。 クリック .
ドキュメント結合14

4.次に、ルックアップテーブルに基づいてデータを更新するメインテーブルの列を確認します。 クリック .
ドキュメント結合15

5.ウィザードのステップ4で、ルックアップテーブルからメインテーブルに追加する列を確認します。 クリック .
ドキュメント結合16

6.ウィザードの最後のステップで、必要に応じて設定オプションを指定します。 次に、をクリックします 終了.
ドキュメント結合17

これで、メインテーブルのデータが更新され、ルックアップテーブルに基づいて新しいデータが追加されました。

デモ:シート/ワークブックをXNUMXつのシートまたはワークブックに結合します

Kutools for Excel:200+便利な便利なツール。Excelの複雑なタスクを数回クリックするだけで簡単に行えます。


サンプルファイルのダウンロード

サンプル


推奨される生産性ツール

Officeタブ-MicrosoftOffice2019-2003およびOffice365でのドキュメントのタブブラウジング、編集、管理


オフィスタブ

Excel 2019-2007を高速化するためのプロフェッショナルアドイン、時間タスクを秒に短縮

このアドインには数十の専門家グループが含まれており、300以上のオプションにより、Excelでの日常のタスクのほとんどが自動化され、生産性が少なくとも50%向上します。 ワンクリックオプトンのグループやバッチ変換など。
今こそ、Kutools forExcelでスピードアップするチャンスです!


Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Chief · 6 years ago
    Thanks for the code. very helpful. I tried this code in a worksheet where some data is protected and it didn't populate. Any help on how to get this to work on a protected sheet?
  • To post as a guest, your comment is unpublished.
    Rhwny · 6 years ago
    Splendid solution!!! I just googled this problem and you provided the perfect solution.
  • To post as a guest, your comment is unpublished.
    LouV · 6 years ago
    Wow!!!! This is incredible, thanks. Saved me a great deal time. I'm talking various Workbooks with 900 tabs each. Worked great, thanks.
  • To post as a guest, your comment is unpublished.
    Chris · 6 years ago
    Amazing, thanks! This is the best tip ever
  • To post as a guest, your comment is unpublished.
    famousk · 6 years ago
    very useful tip. thanks.
  • To post as a guest, your comment is unpublished.
    JC · 6 years ago
    Wow whwat a time saver! Thank you!
  • To post as a guest, your comment is unpublished.
    Vijay Tiwari · 6 years ago
    thanks alot, it is very helpful for me and time saving arround 90 minutes.
  • To post as a guest, your comment is unpublished.
    Sidddharth · 6 years ago
    Thanks. Works like charm
  • To post as a guest, your comment is unpublished.
    Gazza · 6 years ago
    How do you get the code to ignore a particular worksheet?
  • To post as a guest, your comment is unpublished.
    AM · 6 years ago
    I notice that for this to work all column headings have to be the same. What if you have the case that the row headings are the same and you want to combine by adding columns to your unified worksheet?
  • To post as a guest, your comment is unpublished.
    Dee · 6 years ago
    Very useful. Have been trying to figure this out for days. Thanks!!
  • To post as a guest, your comment is unpublished.
    Sergen · 6 years ago
    you are awesome. thank you so much
  • To post as a guest, your comment is unpublished.
    Sharon · 6 years ago
    Hi,

    I have used the following code:

    Sub Combine()
    Dim J As Integer
    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add
    Sheets(1).Name = "Combined"
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")
    For J = 2 To Sheets.Count
    Sheets(J).Activate
    Range("A1").Select
    Selection.CurrentRegion.Select
    Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
    Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    Next
    End Sub

    But for some reason it is missong out one of my worksheets? Does anyone know why?

    Thanks
    • To post as a guest, your comment is unpublished.
      Rose · 6 years ago
      Hi Sharon,

      I've had this happen before. Depending on how many tabs you are trying to combine, you may actually hit the row limit of 2010... I didn't get a warning, it just didn't copy.
  • To post as a guest, your comment is unpublished.
    mlybeer · 6 years ago
    This macro seems to be pretty on-target, however some of my data is being clipped off somehow and I cannot figure out why! Ahhaa, It only adds the next tab if it has more rows than the previous tab! How can I fix this???
  • To post as a guest, your comment is unpublished.
    Jene · 6 years ago
    MACRO CODE WORKED SO FINE... FAB JOB :-)
  • To post as a guest, your comment is unpublished.
    clopez · 7 years ago
    Sub CopySheet()
    '
    ' CopySheet Macro
    '

    '

    Dim i As Integer

    For i = 2 To 25
    Sheets("Sheet1").Select
    Range("A1").Select

    Selection.End(xlDown).Select


    Range("A" & CStr(Selection.Row) + 1).Select


    Sheets("Sheet" & CStr(i)).Select
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Cut
    Sheets("Sheet1").Select
    ActiveSheet.Paste

    Next


    End Sub
    • To post as a guest, your comment is unpublished.
      RamN · 6 years ago
      Range("A:A").SpecialCells(xlCellTypeLastCell).Select
      ActiveCell.Offset(1, 0).Select
      'use this code to select last cell in column "A"


      [quote name="clopez"]

      Sub CopySheet()
      '
      ' CopySheet Macro
      '

      '

      Dim i As Integer

      For i = 2 To 25
      Sheets("Sheet1").Select
      Range("A1").Select

      Selection.End(xlDown).Select


      Range("A" & CStr(Selection.Row) + 1).Select


      Sheets("Sheet" & CStr(i)).Select
      Range("A2").Select
      Range(Selection, Selection.End(xlDown)).Select
      Range(Selection, Selection.End(xlToRight)).Select
      Selection.Cut
      Sheets("Sheet1").Select
      ActiveSheet.Paste

      Next


      End Sub[/quote]
  • To post as a guest, your comment is unpublished.
    Jogan · 7 years ago
    Works great if your Column A is non-=blank. On sheets with column A blank, it seems to be overwriting. In my dtaa column E is a non blank on all sheets. How can I modify the Copy Destination to account for blank column A on some sheets?
  • To post as a guest, your comment is unpublished.
    Debbie · 7 years ago
    Have two workbooks, same data but second one has extra data and some data has been updated,
    inv# Status
    123 7/2 open

    inv# status
    123 7/2 open 7/7 closed

    how to merge into one removing or highlighting duplicates and adding any new inv# not in the first one
  • To post as a guest, your comment is unpublished.
    Driehlax · 7 years ago
    Thanks you saved me an hour of copy and paste :D
  • To post as a guest, your comment is unpublished.
    Adnan · 7 years ago
    I have question about "Merge all worksheets into one worksheet with VBA code" :The code work very well, but only when it is empty, it adds the header, it is possible to modify the code to say not to consolidate the empty sheet ?
  • To post as a guest, your comment is unpublished.
    Angela Fish · 7 years ago
    Code works great! I need the macro to copy all data on the sheets. It is cutting off the first row after Sheet 1. Only sheet one has the header row, the other sheets are just data. Is this possible?
  • To post as a guest, your comment is unpublished.
    Alper · 7 years ago
    I just erased the part given below and now it only updates. Hope this helps...

    Sheets(1).Select
    Worksheets.Add
  • To post as a guest, your comment is unpublished.
    Idris Runijawala · 7 years ago
    Excellent, I used both first macro and Kutools, both has reduced my data gathering and compilation work tremendously. Thanks for sharing.
  • To post as a guest, your comment is unpublished.
    Anto · 7 years ago
    Excellent work.. This has been reduced my work from 2 hours to 10 minutes.
  • To post as a guest, your comment is unpublished.
    Liz · 7 years ago
    The macro code worked great for the first combined worksheet, but I need the combined worksheet to update as I add data to the existing worksheets that I am combining. Is there a way to do that?
    • To post as a guest, your comment is unpublished.
      MALLORY ANDERSON · 4 years ago
      Did you ever figure out how to get it to update in the master as you add in rows to the other worksheets?
  • To post as a guest, your comment is unpublished.
    Liz · 7 years ago
    the vba code worked great but I need the combined worksheet to update as I add new rows or new data to the cells in the worksheets that I am combining. Is there a way to do that? Thank you for your help.
  • To post as a guest, your comment is unpublished.
    taffyJ · 7 years ago
    NOTE!!! You need to be careful with the macro.. it will work if your data has a continuous flow of information and no blank row. this what the line "Selection.CurrentRegion.Select" does. For example, if you need to copy ALL the data on a spreadsheet but there is a blank line at (let's say) row 200, the macro will only copy down to row 200; IT WILL DISREGARD ALL DATA BELOW THAT ROW!!!
    • To post as a guest, your comment is unpublished.
      Eyan · 4 years ago
      Thank you ! My 2nd row was empty in all sheets & I was confused.
    • To post as a guest, your comment is unpublished.
      Carlos · 4 years ago
      Does anyone knows a command to avoid this issue?? The problem with Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select can be solved?

      Selection.Rows.Count - 1) is the command originating the issue.

      Anyone??
      • To post as a guest, your comment is unpublished.
        Ed · 4 years ago
        Instead of starting from the top and going down, start from the bottom and go up
        • To post as a guest, your comment is unpublished.
          arno · 4 years ago
          Does anyone knows the code to solve problems of empty rows and columns?. I have it in my data but there is no simple solution as starting bottom up?

          Thanks!
          • To post as a guest, your comment is unpublished.
            arul.annalect@gmail.com · 3 years ago
            Do we have any solution to copy the data below the blank cell?
          • To post as a guest, your comment is unpublished.
            Diane · 4 years ago
            For deleting rows that are empty:
            Option 1: Select cells in column A that need to be deleted. Use Ctrl - and then select Entire Row in popu up. Save workbook and exit. Then open workbook.
            Option 2: Select rows that need to be deleted. Use Ctrl -. Save workbook and exit The open workbook. Gave option 1 so it was visible to you what was happening.

            For deleting columns that are empty:
            Select column. Ctrl -. Save workbook and exit The open workbook.
  • To post as a guest, your comment is unpublished.
    randy · 7 years ago
    Note this is limited by the 65k row limit, if you need to up the line Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2) range to resolve the problem.
    • To post as a guest, your comment is unpublished.
      Craig · 5 years ago
      Great tool however, it does not combine all 21 sheets. How can I expand the range?
  • To post as a guest, your comment is unpublished.
    Yogesh · 7 years ago
    Macro one works fine. Thanks!! Its Awesome!!!! :)
  • To post as a guest, your comment is unpublished.
    David Tkemaladze · 7 years ago
    Awesome, Thanks!!! Very Very Usefull
  • To post as a guest, your comment is unpublished.
    M. Anandhi · 7 years ago
    i dont know, how to use the VBN function in excel, can you please help how to do that.
  • To post as a guest, your comment is unpublished.
    Daniel · 7 years ago
    Thank you! The macro worked perfectly.
  • To post as a guest, your comment is unpublished.
    Shannon · 7 years ago
    Works like a charm, thanks for sharing!
  • To post as a guest, your comment is unpublished.
    Jason Mills · 7 years ago
    used your first Macro function. WOW! thanks for posting
    • To post as a guest, your comment is unpublished.
      Edwin M · 7 years ago
      I think the code '[b]Selection.Offset(0, 0).Resize(Selection.Rows.Count - 1).Select[/b]' has not to be there. On my end, what it does is select the second row onwards missing the first.
      • To post as a guest, your comment is unpublished.
        Razina K · 5 years ago
        I have the same problem. It's omitting the first row from the second worksheet added.
        • To post as a guest, your comment is unpublished.
          KJ · 4 years ago
          Eliminates headers so you don't have duplicated headers