I am not very knowledgeable about tables but using your "irow" statement in VBA placed the data at the bottom of the file.

I changed the worksheets back to "range" format and used the following for irow

irow=.cells(rows.count,"A").end(xlup).row

in the "with ws" loop where you add the data.

This added the data in the next (correct) row.

Hopefully a VBA guru will solve the issue of determining the "lastrow" using a table structure

Update: Logit appears to have resolved the issue!!