Ваш for each
проходит по всем таблицам (ListObjects
), на каждой итерации ваша переменная tbl
будет содержать одну из таблиц - именно то, что вам нужно.
Ваше следующее утверждение (With ...
) имеет недостатки. ListObjects
- это Collection
, и вы получаете доступ к члену Collection
либо по порядковому номеру , либо по имени - не по объекту.
Вы можете изменить строку на With Sheets("Back Table").ListObjects(tbl.name)
- но это совершенно не нужно, поскольку это снова вернет объект, который у вас уже есть в tbl
. Вместо этого просто измените строку на With tbl
Обновление: я не хотел украсть ответ HTH, данный в комментариях - когда я читал комментарии, я просто читал довольно бесполезную дискуссию о On Error
, что тем временем (к счастью) удаляется.