0% found this document useful (0 votes)
97 views

Merge Multiple Excel Files

This document provides instructions for merging multiple Excel files into one sheet using VBA macros. It outlines three criteria: 1) Merging files into a new workbook in one sheet. 2) Combining files into one sheet in the active workbook. 3) Merging files into individual sheets in a new workbook. The VBA code provided merges data from opened Excel files by looping through each file and sheet, identifying the last cell, setting the source range, and pasting data into the destination sheet.

Uploaded by

aksldjgvb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views

Merge Multiple Excel Files

This document provides instructions for merging multiple Excel files into one sheet using VBA macros. It outlines three criteria: 1) Merging files into a new workbook in one sheet. 2) Combining files into one sheet in the active workbook. 3) Merging files into individual sheets in a new workbook. The VBA code provided merges data from opened Excel files by looping through each file and sheet, identifying the last cell, setting the source range, and pasting data into the destination sheet.

Uploaded by

aksldjgvb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

8/2/22, 10:46 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Home » Macros & Excel VBA » How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Macros & Excel VBA

How to Merge Multiple Excel Files


into One Sheet by VBA (3 Criteria)
Sanjida Ahmed Sanjida Ahmed

May 10, 2022

 0

Implementing VBA macro is the most effective, quickest and safest method to run any
operation in Excel. In this article, we will show you how to merge multiple Excel files into
one sheet or one workbook if needed in Excel with the VBA macro.

Table of Contents [
hide
]

Download Practice Template

3 Criteria to Merge Multiple Excel Files into One Sheet Using VBA

1. Merge Multiple Files into One Sheet in a New Workbook in Excel

2. Combine Multiple Files into One Sheet in an Active Workbook in Excel

3. Merge Multiple Files into a New Workbook as Individual Sheets in Excel

Conclusion

You May Also Like to Explore

Download Practice Template


You can download the VBA code from this free practice Excel template.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 1/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

 Merge Multiple Excel Files into One Sheet.xlsm

3 Criteria to Merge Multiple Excel Files into


One Sheet Using VBA
Look at the following pictures. We have 3 Excel files – File1, File2, File3 – and we are going
to merge these three files in one sheet or in one workbook if needed.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 2/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 3/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 4/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Remember: The files you need to copy the information form (e.g. File1, File2, File3) need
to be open while running the macro. Because Excel will loop through the open files and
copy the information into a new sheet or workbook.

1. Merge Multiple Files into One Sheet in a New Workbook


in Excel

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 5/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

This criterion will let you know how to merge File1, File2, and File3 into one sheet in a new
workbook in Excel.

Steps:

Press Alt + F11 on your keyboard or go to the tab Developer -> Visual Basic to open
Visual Basic Editor.

In the pop-up code window, from the menu bar, click Insert -> Module.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 6/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

In the code window, copy the following code and paste it.

Sub MergeMultipleSheetsToNew()

On Error GoTo eh

'declare variables to hold the objects required

Dim wbDestination As Workbook

Dim wbSource As Workbook

Dim wsDestination As Worksheet

Dim wb As Workbook

Dim sh As Worksheet

Dim strSheetName As String

Dim strDestName As String

Dim iRws As Integer

Dim iCols As Integer

Dim totRws As Integer

Dim strEndRng As String

Dim rngSource As Range

'turn off the screen updating to speed things up

Application.ScreenUpdating = False

'first create new destination workbook

Set wbDestination = Workbooks.Add

'get the name of the new workbook so you exclude it from the loop below

strDestName = wbDestination.Name

'now loop through each of the workbooks open to get the data

For Each wb In Application.Workbooks

If wb.Name <> strDestName And wb.Name <> "PERSONAL.XLSB" Then

Set wbSource = wb

For Each sh In wbSource.Worksheets

'get the number of rows and columns in the sheet

sh.Activate

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate

iRws = ActiveCell.Row

iCols = ActiveCell.Column

'set the range of the last cell in the sheet

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 7/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

strEndRng = sh.Cells(iRws, iCols).Address

'set the source range to copy

Set rngSource = sh.Range("A1:" & strEndRng)

'find the last row in the destination sheet

wbDestination.Activate

Set wsDestination = ActiveSheet

wsDestination.Cells.SpecialCells(xlCellTypeLastCell).Select

totRws = ActiveCell.Row

'check if there are enough rows to paste the data

If totRws + rngSource.Rows.Count > wsDestination.Rows.Count T


MsgBox "There are not enough rows to place the data in th
GoTo eh

End If

'add a row to paste on the next row down

If totRws <> 1 Then totRws = totRws + 1

rngSource.Copy Destination:=wsDestination.Range("A" & totRws)


Next sh

End If

Next wb

'now close all the open files except the one you want

For Each wb In Application.Workbooks

If wb.Name <> strDestName And wb.Name <> "PERSONAL.XLSB" Then

wb.Close False

End If

Next wb

'clean up the objects to release the memory

Set wbDestination = Nothing

Set wbSource = Nothing

Set wsDestination = Nothing

Set rngSource = Nothing

Set wb = Nothing

'turn on the screen updating when complete

Application.ScreenUpdating = False

Exit Sub

eh:

MsgBox Err.Description

End Sub

Your code is now ready to run.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 8/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Press F5 on your keyboard or from the menu bar select Run -> Run Sub/UserForm. You
can also just click on the small Play icon in the sub-menu bar to run the macro.

You will get all the data from the multiple opened Excel files in one sheet of a new Excel
workbook (see the picture below to understand more).

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 9/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 10/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

2. Combine Multiple Files into One Sheet in an Active


Workbook in Excel

This criterion will let you know how to combine File1, File2, and File3 into one sheet in an
active workbook in Excel.

Steps:

Same way as before, open Visual Basic Editor from the Developer tab and Insert a
Module in the code window.

In the code window, copy the following code and paste it.

Sub MergeMultipleSheetsToActive()

On Error GoTo eh

'declare variables to hold the objects required

Dim wbDestination As Workbook

Dim wbSource As Workbook

Dim wsDestination As Worksheet

Dim wb As Workbook

Dim sh As Worksheet

Dim strSheetName As String

Dim strDestName As String

Dim iRws As Integer

Dim iCols As Integer

Dim totRws As Integer

Dim rngEnd As String

Dim rngSource As Range

'set the active workbook object for the destination book

Set wbDestination = ActiveWorkbook

'get the name of the active file



strDestName = wbDestination.Name

'turn off the screen updating to speed things up

Application.ScreenUpdating = False

'first create new destination worksheet in your Active workbook

Application.DisplayAlerts = False

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 11/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

'resume next error in case sheet doesn't exist

On Error Resume Next

ActiveWorkbook.Sheets("Consolidation").Delete

'reset error trap to go to the error trap at the end

On Error GoTo eh

Application.DisplayAlerts = True

'add a new sheet to the workbook

With ActiveWorkbook

Set wsDestination = .Sheets.Add(After:=.Sheets(.Sheets.Count))

wsDestination.Name = "Consolidation"

End With

'now loop through each of the workbooks open to get the data

For Each wb In Application.Workbooks

If wb.Name <> strDestName And wb.Name <> "PERSONAL.XLSB" Then

Set wbSource = wb

For Each sh In wbSource.Worksheets

'get the number of rows in the sheet

sh.Activate
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activa
iRws = ActiveCell.Row

iCols = ActiveCell.Column

rngEnd = sh.Cells(iRws, iCols).Address

Set rngSource = sh.Range("A1:" & rngEnd)

'find the last row in the destination sheet

wbDestination.Activate

Set wsDestination = ActiveSheet

wsDestination.Cells.SpecialCells(xlCellTypeLastCell).Sele
totRws = ActiveCell.Row

'check if there are enough rows to paste the data

If totRws + rngSource.Rows.Count > wsDestination.Rows.Cou


MsgBox "There are not enough rows to place the data in
GoTo eh

End If

'add a row to paste on the next row down if you are not in row 1

If totRws <> 1 Then totRws = totRws + 1

rngSource.Copy Destination:=wsDestination.Range("A" & tot



Next sh

End If

Next wb

'now close all the open files except the one you want

For Each wb In Application.Workbooks

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 12/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

If wb.Name <> strDestName And wb.Name <> "PERSONAL.XLSB" Then

wb.Close False

End If

Next wb

'clean up the objects to release the memory

Set wbDestination = Nothing

Set wbSource = Nothing

Set wsDestination = Nothing

Set rngSource = Nothing

Set wb = Nothing

'turn on the screen updating when complete

Application.ScreenUpdating = False

Exit Sub

eh:

MsgBox Err.Description

End Sub

Your code is now ready to run.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 13/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 14/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Run the code and you will get all the data from the multiple opened Excel files in one sheet
in an active Excel workbook (see the picture above to understand more).

3. Merge Multiple Files into a New Workbook as Individual


Sheets in Excel

This criterion will let you know how to combine File1, File2, and File3 into a new workbook
as individual sheets in Excel.

Steps:

Same way as before, open Visual Basic Editor from the Developer tab and Insert a
Module in the code window.

In the code window, copy the following code and paste it.

Sub MergeMultipleFiles()

On Error GoTo eh

'declare variables to hold the objects required

Dim wbDestination As Workbook

Dim wbSource As Workbook


Dim wsSource As Worksheet

Dim wb As Workbook

Dim sh As Worksheet

Dim strSheetName As String

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 15/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Dim strDestName As String

'turn off the screen updating to speed things up

Application.ScreenUpdating = False

'first create new destination workbook

Set wbDestination = Workbooks.Add

'get the name of the new workbook so you exclude it from the loop below

strDestName = wbDestination.Name

'now loop through each of the workbooks open to get the data but exclude
For Each wb In Application.Workbooks

If wb.Name <> strDestName And wb.Name <> "PERSONAL.XLSB" Then

Set wbSource = wb

For Each sh In wbSource.Worksheets

sh.Copy After:=Workbooks(strDestName).Sheets(1)

Next sh

End If

Next wb

'now close all the open files except the new file and the Personal macro
For Each wb In Application.Workbooks

If wb.Name <> strDestName And wb.Name <> "PERSONAL.XLSB" Then

wb.Close False

End If

Next wb

'remove sheet one from the destination workbook

Application.DisplayAlerts = False

Sheets("Sheet1").Delete

Application.DisplayAlerts = True

'clean up the objects to release the memory

Set wbDestination = Nothing

Set wbSource = Nothing

Set wsSource = Nothing

Set wb = Nothing

'turn on the screen updating when complete

Application.ScreenUpdating = False

Exit Sub

eh:

MsgBox Err.Description

End Sub

Your code is now ready to run.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 16/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Run the code and you will get all the opened Excel files in a new Excel workbook as
individual sheets (see the picture above to understand more).

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 17/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Conclusion
This article showed you how to merge multiple Excel files into one sheet and one workbook
in Excel by implementing the VBA macro. I hope this article has been very beneficial to
you. Feel free to ask any questions regarding the topic.

You May Also Like to Explore


Combine Multiple Workbooks to One Workbook in Excel (6 Ways)
How to Compare and Merge Excel Workbooks (3 Easy Steps)

0
 Save    

TAGS: Merge Excel File

Sanjida Ahmed 

Hello World! This is Sanjida, an Engineer who is passionate about researching real-world
problems and inventing solutions that haven’t been discovered yet. Here, I try to deliver
the results with explanations of Excel-related problems, where most of my interpretations
will be provided to you in the form of Visual Basic for Applications (VBA) programming
language. Being a programmer and a constant solution seeker, made me interested in
assisting the world with top-notch innovations and evaluations of data analysis.
https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 18/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Related Articles

 

Automation of Bank How to Insert Page Number


Reconciliation with Excel Using VBA in Excel (3 Macros)
Macros

 

[Solved!] Excel VBA: Status Bar Excel VBA: Hide Columns


Not Updating [4 Easy Based on Cell Value (15
Solutions] Examples)

We will be happy to hear your thoughts

LEAVE A REPLY

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 19/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

 Name  E-mail  Website

Submit

Affiliate Disclosure

This post may contain affiliate links, meaning when you click the links and make a purchase, we may earn an
affiliate commission, but this never influences our opinion.

100+ Pre-Built Excel Templates

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 20/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

About ExcelDemy.com

ExcelDemy is a place where you can learn Excel, Data Analysis, and other Office related programs. We provide
tips, how to guide and also provide Excel solutions to your business problems.

ExcelDemy.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program. I
earn a small commission if you buy any products using my affiliate links to Amazon.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 21/22
8/2/22, 10:47 AM How to Merge Multiple Excel Files into One Sheet by VBA (3 Criteria)

Contact | Privacy Policy

Categories

Select Category

Search in ExcelDemy.com

Search

2013-2022 ExcelDemy.com. All rights reserved.

https://www.exceldemy.com/merge-multiple-excel-files-into-one-sheet-vba/ 22/22

You might also like