Don't have a direct answer to your question, but hope this helps.
There is no need to use copy / paste, and it should generally be avoided. Simply set the destination range equal to the source range. This is much faster, and should avoid your formatting issue. I won't gurantee that, however - dates and formatting in Excel can be very troublesome, especially when VBA is involved!
E.g. The following code copies the first 100 rows and 10 columns from one workbook to another. You can repeat this in a loop for multiple files, incrementing r as needed.
Incidently, the following code is redundant:
can be replaced with
and it will do exactly the same thing.
Bookmarks