I tested the entire macro, and was unable to duplicate your problem using Excel 2003 and Excel 2010. I was able to generate a Runtime error 1004 (Application Defined or Object Defined Error) on the same line. I corrected the error that caused the problem (in red below) and the error went away.
I am getting a runtime "424 Object Required" error at line "Set SourceRange2 = SourceRange.CurrentRegion"
My previous comment was a typo from an early version of the code. Rows 1 thru 17 can contain anything. See the corrected text in blue below.
One thing I noticed is that you said to assume that there is an empty row in the source sheet at row 17 - this however is not the case, it is actually text headers for the columns to be copied, i.e. date, amount, receipt number etc. I don't know if this may be causing the problem....
Please let me know if you have any more problems.