Привет! Пытаюсь облегчить себе работу и подготовить выданную таблицу, зачистив ненужные столбцы, но что-то не понимаю, в чем вылезает ошибка. Пробовала чисто интуитивно разные способы, но ни один не сработал — либо чистит неверно, либо выпадает в ошибку "данная команда неприменима для перекрывающихся диапазонов".
Разделить селекцию range на несколько, если ты именно столбцы удаляешь
DeleteRange "E:AH"
DeleteRange "AJ:AK"
и так далее
Sub DeleteRange(r)
Range(r).Select
Selection.Delete Shift:=xlToLeft
End Sub
и удалять столбцы по очереди - не? нужно обязательно весь этот огромный range за раз выделить и удалить?
только в обратном порядке, удалять столбцы справа налево, иначе учитывать сдвижку столбцов
И еще формат файла надо зырить и что лежит в удаляемых столбцах
Здесь нужно быть аккуратным: если таблица сдержит помимо пустых строк, строки с заполненными и пустыми ячейками, то часть ячеек перескочит со своих строк на другие, что испортит таблицу. Если таблица в формате EXCEL 2007 , то EXCEL не даст испортить таким образом таблицу: появится сообщение «Данная команда неприменима для перекрывающихся диапазонов».
СОВЕТ: Стоит помнить, что ячейки, содержащие формулы (даже если это ссылки на пустые ячейки), не считаются пустыми по определению.
Разделив удаление столбцов по одному range, будет проще найти хотя бы косячный range, чтобы к нему присмотреться.
Ну и как правильно подсказали, удаление делать справа налево.
и нет, не обязательно за раз, но я, во-первых, хотела облегчить код, во-вторых, запуталась со сдвигом столбцов: то ли после каждого удаления новые имена ставить, то ли первоначальные.. и что-то ни один вариант не удовлетворял.