Have a look at the attached. It collects the file names locations differently, looking through a folder and sub-folders for the file names (don't know if this is required), and then extracts the data, basically using your own code. It's a bit untidy, but no more time just now. Extract the attached into C:\Apath to test.
Option Explicit
Option Compare Text
Sub GetData()
Dim BaseBook As Workbook ' The current open book that files will be merged into
Dim mybook As Workbook
Dim sourceRange As Range
Dim destrange As Range
Dim rnum As Long
Dim lrow As Long
Dim SourceRcount As Long
Dim FNames As String
Dim MyFiles, F
Const MyPath = "C:\APath" ' Set the path.
Const FileName = "AppendFile" & "*.xls"
Set BaseBook = ThisWorkbook
MyFiles = ProcessFiles(MyPath, FileName, -1)
rnum = 1
For Each F In MyFiles
If F = "" Then Exit Sub
Set mybook = Workbooks.Open(F)
lrow = Range("A" & Cells.Rows.Count).End(xlUp).Row
Set sourceRange = mybook.Worksheets(1).Range("A2:IV" & lrow)
'Copy from A2:IV? (till the last row with data on your sheet)
SourceRcount = sourceRange.Rows.Count
Set destrange = BaseBook.Worksheets(1).Cells(rnum, "A")
sourceRange.Copy destrange
mybook.Close False
rnum = rnum + SourceRcount
Next
End Sub
Function ProcessFiles(strFolder As String, strFilePattern As String, Optional j As Long) As Variant
Dim strFileName As String
Dim strFolders() As String
Dim iFolderCount As Integer
Dim I As Long
Static strFiles(5) As String
'Collect child folders
strFileName = Dir$(strFolder & "\", vbDirectory)
Do Until strFileName = ""
If (GetAttr(strFolder & "\" & strFileName) And vbDirectory) = vbDirectory Then
If Left$(strFileName, 1) <> "." Then
ReDim Preserve strFolders(iFolderCount)
strFolders(iFolderCount) = strFolder & "\" & strFileName
iFolderCount = iFolderCount + 1
End If
End If
strFileName = Dir$()
Loop
'process files in current folder
strFileName = Dir$(strFolder & "\" & strFilePattern)
Do Until strFileName = ""
If Right(strFileName, 3) = "xls" Then
j = j + 1
'Do things with files here
strFiles(j) = strFolder & "\" & strFileName
End If
strFileName = Dir$()
Loop
'Look through child folders
For I = 0 To iFolderCount - 1
ProcessFiles strFolders(I), strFilePattern, j
Next I
ProcessFiles = strFiles
End Function