Using a collection to copy the sheets may help. Here's the general outline...
Dim FSO As Object, FilDir As Object, ShtCollect As Collection
Dim sht As Worksheet, cnt As Integer
Set FSO = CreateObject("Scripting.FilesystemObject")
Set FilDir = FSO.getfile("C:\yourfoldername\filename.xlsm")
Workbooks.Open Filename:=FilDir
'load sheets in collection
Set ShtCollect = New Collection
For Each sht In Workbooks(FilDir.Name).Sheets
ShtCollect.Add Workbooks(FilDir.Name).Sheets(sht.Name)
Next sht
'copy collection sheets to wb
For cnt = 1 To ShtCollect.Count
ShtCollect(cnt).Copy ThisWorkbook.Sheets(cnt)
Next cnt
'close wb
Workbooks(FilDir.Name).Close SaveChanges:=False
HTH. Dave