У меня есть разные листы в книге, из которых я хочу скопировать данные. Я мог бы выписать диапазон вручную для каждого листа, потому что его размер не должен меняться так часто. Тем не менее, мне бы очень хотелось, чтобы он был более элегантным и проходил по нему. Проблема в том, что данные на каждом листе могут немного отличаться, и теперь я не знаю, как найти последний столбец.
На разных листах первый столбец и строка всегда пусты, затем следуют нужные мне данные (4+ столбца). Есть три варианта этого (пока):
Просто диапазон с нужными мне данными. Достаточно просто
lCol = Cells (2, Columns.Count) .End (xlToLeft) .Column
Иногда, однако, справа от нужных мне данных находится пустой столбец, за которым следует столбец с не относящимися к делу данными: ![Data structure2](https://i.stack.imgur.com/nZcsj.png)
Если бы это был единственный случай, я бы изменил свой код следующим образом:
lCol = Cells(2, Columns.Count).End(xlToLeft).End(xlToLeft).Column
If lCol = 2 Then
lCol = Cells(2, Columns.Count).End(xlToLeft).Column
End If
- К сожалению, у меня также есть листы, которые имеют еще некоторые (не относящиеся к делу) данные справа от них:
![Data structure3](https://i.stack.imgur.com/To1do.png)
Я не знаю, как с этим справиться. В основном мне нужен код, который говорит Excel, чтобы выбрать самый большой непрерывный диапазон, то есть диапазон, который не имеет пустых столбцов
edit: я не знаю, помогает ли это, но данные, которые я ищу на каждом листе, обведены рамкой (они отформатированы в виде таблицы)