В процессе избавления от очередного «рукоблудия» (обработка кучи однотипных книг с однотипными листами) обнаружилось весьма интересное поведения MS Excel при удаления столбца ручным способом и того же самого удаления макросом.
Каждый лист в каждой книге имеет шапку, в которой ячейки «A1:BC1» и «B2:AJ2» объединены. Нужно удалить столбец «T».
Пробуем сделать это ручками. Мышой выделяем столбце «T», правой клавишей и «Удалить» - успешно. Теперь записываем туже саму операцию, Excel выдает на гора макрос:
Sub Макрос1()
Columns("T:T").Select
Selection.Delete Shift:=xlToLeft
End Sub
Исполняем его и… имеем полностью удаленный диапазон ячеек (в листе все похерилось), т.к. первым действием Excel выделил всю книгу (видимо из-за наличия объединенных ячеек), а вторым грохнул выделенные ячейки.
…Спустя какое-то время родилось решение:
- убрать объединение указанных выше ячеек;
- удалить «проблемный» столбец;
- восстановить объединение (с учетом того, что количество столбцов уменьшилось).
Макрос:
Sub Макрос1()
' Разъединить первый диапазон
Range("A1:BC1").Select
Selection.UnMerge
' Разъединить второй диапазон
Range("B2:AJ2").Select
Selection.UnMerge
' Удалить столбец
Columns("T:T").Select
Selection.Delete Shift:=xlToLeft
' вернуть объединение двух диапазонов
Range("A1:BB1").Select
Selection.Merge
Range("B2:AI2").Select
Selection.Merge
End Sub
Комментариев нет:
Отправить комментарий