VBA: Динамический диапазон в Excel - поиск последнего столбца с соответствующими данными - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть разные листы в книге, из которых я хочу скопировать данные. Я мог бы выписать диапазон вручную для каждого листа, потому что его размер не должен меняться так часто. Тем не менее, мне бы очень хотелось, чтобы он был более элегантным и проходил по нему. Проблема в том, что данные на каждом листе могут немного отличаться, и теперь я не знаю, как найти последний столбец.

На разных листах первый столбец и строка всегда пусты, затем следуют нужные мне данные (4+ столбца). Есть три варианта этого (пока):

  1. Просто диапазон с нужными мне данными. Достаточно просто

    lCol = Cells (2, Columns.Count) .End (xlToLeft) .Column

  2. Иногда, однако, справа от нужных мне данных находится пустой столбец, за которым следует столбец с не относящимися к делу данными: Data structure2

Если бы это был единственный случай, я бы изменил свой код следующим образом:

lCol = Cells(2, Columns.Count).End(xlToLeft).End(xlToLeft).Column
If lCol = 2 Then
    lCol = Cells(2, Columns.Count).End(xlToLeft).Column
End If
  1. К сожалению, у меня также есть листы, которые имеют еще некоторые (не относящиеся к делу) данные справа от них:

Data structure3

Я не знаю, как с этим справиться. В основном мне нужен код, который говорит Excel, чтобы выбрать самый большой непрерывный диапазон, то есть диапазон, который не имеет пустых столбцов

edit: я не знаю, помогает ли это, но данные, которые я ищу на каждом листе, обведены рамкой (они отформатированы в виде таблицы)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...