VBA to copy data from one worksheet in multiple workbooks to a master, single sheet

jdhfch

Board Regular
Joined
Jan 25, 2018
Messages
79
Office Version
  1. 365
Platform
  1. Windows
Hi,

Please can anyone help me?

I have been using this code to copy all the data from 10 workbooks in a single location to a master, each dataset is added below the previous on a single sheet. It has worked fine, but I have now had to add another worksheet, which I don't need to copy to the master but now the code doesn't work. The only sheet from the source I want to copy the data from is called 2020.

This is the code that has worked until now:
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")

'change folder path of excel files here
Set dirObj = mergeObj.Getfolder("\\Documents\Databases\2020\Current Files")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)

'change "A2" with cell reference of start point for every files here
'for example "B3:IV" to merge all files start from columns B and rows 3
'If you're files using more than IV column, change it to the latest column
'Also change "A" column on "A65536" to the same column as start point
Range("A2:AF" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate

'Do not change the following column. It's not the same column as above
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub

Private Sub Workbook_Open()

End Sub

Any help would be appreciated!

Rgds

J
 

Excel Facts

How to calculate loan payments in Excel?
Use the PMT function: =PMT(5%/12,60,-25000) is for a $25,000 loan, 5% annual interest, 60 month loan.
Try:
VBA Code:
Sub simpleXlsMerger()
    Application.ScreenUpdating = False
    Dim bookList As Workbook, mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object, desWS As Worksheet
    Set mergeObj = CreateObject("Scripting.FileSystemObject")
    Set dirObj = mergeObj.Getfolder("\\Documents\Databases\2020\Current Files")
    Set filesObj = dirObj.Files
    Set desWS = ThisWorkbook.Sheets(1)
    For Each everyObj In filesObj
        Set bookList = Workbooks.Open(everyObj)
        Sheets("2020").Range("A2:AF" & Sheets("2020").Range("A65536").End(xlUp).Row).Copy desWS.Cells(desWS.Rows.Count, "A").End(xlUp).Offset(1)
        bookList.Close
    Next everyObj
    Application.ScreenUpdating = True
End Sub
 
Upvote 0
Solution

Forum statistics

Threads
1,223,888
Messages
6,175,219
Members
452,619
Latest member
Shiv1198

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top