 <p>I believe your problem is here:</p> <pre><code>Sub DoOneFolder(FF As Scripting.Folder) Dim F As Scripting.File Dim SubF As Scripting.Folder Dim WBc As Workbook Dim shtWBc As Object Set shtWBc = Sheets("QC Results") Dim shtBatchwbk As Object Dim lastrow As Long Set shtBatchwbk = ThisWorkbook.Sheets("QC Results") lastrow = shtBatchwbk.Range("A65536").End(xlUp).Row </code></pre> <p>Notice that <code>shtWBc</code> and <code>shtBatchwbk</code> are most likely assigned to the <em>exact same worksheet object</em>.</p> <p><code>shtBatchwbk</code> is assigned from <code>ThisWorkbook</code>, and unless you have other workbooks open/active at the time, then <code>shtWBc</code> is assigned from the <code>ActiveWorkbook</code>, which would be the same workbook, thus the exact same worksheet.</p> <p>The resolution would seem to be:</p> <pre><code> For Each F In FF.Files If (F.Name) Like "QC_results*" &amp; ".xlsm" Then Set WBc = Workbooks.Open(F) Set shtWBc = WBc.Sheets("QC Results") '##### ASSIGN THIS WORKSHEET FROM THE NEWLY OPNEED WORKBOOk 'Get the last row: lastrow = shtBatchwbk.Range("A65536").End(xlUp).Row ' Copy QC results range into batch summary workbook shtWBc.Range("A4:SA11").Copy shtBatchwbk.Range("A" &amp; lastrow) WBc.Close SaveChanges:=False Debug.Print F.Name End If Next F </code></pre> <p>Otherwise, revise your Q to provide more detail per Alexandre's comment.</p> <p><strong>UPDATE FROM COMMENTS</strong></p> <p>If you only need <em>values</em>, then this should be more reliable and faster than copy/paste. </p> <p>Instead of:</p> <pre><code>shtWBc.Range("A4:SA11").Copy shtBatchwbk.Range("A" &amp; lastrow) </code></pre> <p>Do this:</p> <pre><code>shtBatchwbk.Range("A" &amp; lastrow).Resize( _ shtWBc.Range("A4:SA11").Rows.Count, _ shtWBc.Range("A4:SA11").Columns.Count).Value = shtWBc.Range("A4:SA11").Value </code></pre> <p>And if you also want to copy formatting without doing the full "copy" because it sometimes changes/transposes numbers, etc., then you can add this as well:</p> <pre><code>shtWBc.Range("A4:SA11").Copy shtBatchwbk.Range("A" &amp; lastrow).PasteSpecial xlPasteFormats </code></pre>