Вам нужно найти способ ограничить таблицы в VBA, то есть знать, в какой строке они начинаются и из какого количества строк они состоят. Поскольку таблицы могут появляться в любом месте листа с различными размерами, прямого способа извлечения их данных не существует.
То, что я хотел бы предложить, - это цикл сверху вниз до последней строки листа, и в каждой строке проверять, начинается ли таблица, а затем во внутреннем цикле перебирать строки таблицы до конца таблицы (т. Е. Встречается пустая строка). ).
Код может выглядеть примерно так (не проверено):
Dim LastRow as Long, i as Long, k as Long
Dim sht as Worksheet
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row 'Assuming the tables start in column A
For i=1 to LastRow
If (sht.Range("A" & i) <> "" Then 'table is encountered
k = i
Do While sht.Range("A" & k) <> ""
... 'Get data from specific column
k = k + 1
Loop
End if
i = k
Next i