Sometimes we want to merge multiple sheets into one sheet so that we can easily analyse the data and turn it into some useful information. This articles will tell you how to merge multiple worksheets into one worksheet using VBA.
Here I have fetched some data from server that returns data into different worksheets. I have added one more sheet and named it as “Master”. Other sheet names doesn’t matter.
Now run this macro.
How to merge sheets using this VBA Macro?
Consolidate data by using multiple page fields. You can create multiple page fields and assign your own item names for each source range. This lets you create partial or full consolidations; for example, one page field that consolidates Marketing and Sales apart from Manufacturing, and another page field that consolidates all three departments. This action will combine the data from all sheets into one; That’s it, all the data from multiple sheets are combined. You might need, however, to clean the data, remove duplicate headers, etc to have a clean combined table as a result.
- Insert a new sheet and name it “Master” in the workbook. Rename it later if you want.
- Insert a module in VBA editor and copy above VBA code.
- Run the macro.
- You will be asked to select headings. Select the heading and hit OK.
And it is done. All the sheets are merged in master.
How it works?
I assume that you know the basics of object and variable creation in VBA. in the first part we have created object and variables that we will need in our operations.
Well most of the things I have explained using comments in vba code. Let’s look at the main part of this vba code.
In earlier articles we learned how to loop through sheets and how to get last row and column using vba.
Here we are looping through each sheet in main workbook using for loop.
For Each ws In wb.Worksheets
Merge Data From Multiple Worksheets In A Single Worksheet Answer
Then we exclude “master” sheet from looping, since we will be consolidating our data in that sheet.
Then we get last row and last column number.
Now next line is very important. We have done multiple operations into one line.
Range(Cells(startRow, startCol), Cells(lastRow, lastCol)).Copy _
mtr.Range('A' & mtr.Cells(Rows.Count, 1).End(xlUp).Row + 1)
First we form a range using startRow, startCol and lastRow and lastCol.
This loops runs for all the sheets and copies each sheets data into master sheet.
Finally, in the end of the macro we activate the mastersheet to see the output.
So yeah guys, this is how you can merge every sheet in a workbook. Let me know if you have any query regarding this VBA code or any excel topic in the comments section below.
Consolidate Data From Multiple Worksheets In A Single Worksheet Excel 2016
Consolidate Data From Multiple Worksheets In A Single Worksheet Online
Oneiopen. How to loop through sheets
Merge Data From Multiple Worksheets In A Single Worksheet Vba
how to get last row and column using vba
Merge Data From Multiple Worksheets In A Single Worksheet In Excel