Could you put your table data into a contiguous area (either on the
same sheet or on a separate sheet) and refer to that data from your
tables?

For instance, if the table data is on a sheet named "Tables" then B18
refers to Tables!A1 (the formula in B18 would be "=Tables!A1"), C18
refers to Tables!B1, D18 references Tables!C1. Row 19 in your original
table area references row 2 on Tables, row 20 references Tables row 3,
etc.

Original table row 32 would reference row 15 on the Tables sheet. Then
you have your gap, and your second table beginning with B52 would
reference Tables row 16, the data on row 53 refers to Tables row 17,
and so on.

You can use a modified (and now simpler) version of voodooJoe's code to
massage the contiguous table data on the Table sheet, moving data up to
fill in rows that become blank, and the original table areas, by always
reading the same rows on the Tables sheet, are automatically filled in
properly.

(Google's been coughing up hairballs trying to post my comments lately.
You may already have seen a version of this comment, which I posted
last night. If so, sorry. But I haven't seen it yet.)