This will not loop each row but get all data into an array at once and paste it into your master sheet at once starting at the next free row
Sub import()
Dim xlWb As Workbook
Dim aData, i&
Set xlWb = Workbooks.Open(Filename:="C:Source 1.xlsx")
With xlWb.ActiveSheet
i = .Cells(8, .Columns.Count).End(xlToLeft).Column 'last column assuming headers are in row 8
aData = .Range("C9").Resize(.Range("C9").End(xlDown).Row - 8, i - 2).Value 'all data into array
End With
xlWb.Close False 'close workbook unsaved
With ActiveSheet
i = .Cells(.Rows.Count, 3).End(xlUp).Row + 1 'last row checking in column C
.Cells(i, 3).Resize(UBound(aData, 1), UBound(aData, 2)).Value = aData 'paste data
End With
End Sub
Bookmarks