Статья удалена

Этот материал был удалён по просьбе автора.

34 комментария

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

2

Комментарий недоступен

1

Разделить селекцию range на несколько, если ты именно столбцы удаляешь

DeleteRange "E:AH"
DeleteRange "AJ:AK"
и так далее
Sub DeleteRange(r)
Range(r).Select
Selection.Delete Shift:=xlToLeft
End Sub

и удалять столбцы по очереди - не? нужно обязательно весь этот огромный range за раз выделить и удалить?

1

только в обратном порядке, удалять столбцы справа налево, иначе учитывать сдвижку столбцов

2

И еще формат файла надо зырить и что лежит в удаляемых столбцах

Здесь нужно быть аккуратным: если таблица сдержит помимо пустых строк, строки с заполненными и пустыми ячейками, то часть ячеек перескочит со своих строк на другие, что испортит таблицу. Если таблица в формате EXCEL 2007 , то EXCEL не даст испортить таким образом таблицу: появится сообщение «Данная команда неприменима для перекрывающихся диапазонов».

СОВЕТ: Стоит помнить, что ячейки, содержащие формулы (даже если это ссылки на пустые ячейки), не считаются пустыми по определению.

1

Разделив удаление столбцов по одному range, будет проще найти хотя бы косячный range, чтобы к нему присмотреться.

Ну и как правильно подсказали, удаление делать справа налево.

1

Комментарий недоступен