One alternative, which might speed things up, would be to use an array as an
intermediary. That is have nested for/next loops to copy the table to the
array and then another set of loops to copy from the array to the spreadsheet.
The reason I think this could be quicker is that the macro is only dealing
with one application at a time rather than jumping from one to the other.
Another idea would be to use copy and paste special with the whole table. If
that achieves what you want manually you could do the same in code.