The following VBA code can help you to get data from all worksheets of active workbook together into a new single worksheet. At the same time, all of the worksheets must have the same field structure, same column headings and same column order. Please do as follows:
1. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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 |
3. Then press F5 key to run the code, and all the data in the workbook has been merged into a new worksheet named Combined which will add before all worksheets.
Notes:
(1.) Your data must start from A1, if not, the code will not take effect.
(2.) Your data must have the same structure.
(3.) This code only can combine all worksheets of the active workbook, if you want to merge worksheets from multiple workbooks, this code will not work.