Удалить пустые строки vba

Часто встречающейся операцией при работе с таблицами Excel является удаление пустых строк. Существуют как стандартные средства при помощи которых можно удалить пустые строки, так и нестандартные, с использованием программирования на Visual Basic for Application.

Стандартные способы удаления пустых строк

Удаление вручную

Самый распространенный, но при этом самый примитивный способ, при котором необходимо навести курсор на номер пустой строки и кликнуть по нему левой кнопкой мыши. Вся строка выделится. Если нажать и удерживать клавишу Ctrl на клавиатуре, можно выделить несколько строк. После этого их можно удалить все разом, кликнув правой кнопкой мыши в выделенной области и выбрав команду "Удалить" в контекстном меню. Этот способ целесообразно использовать когда необходимо удалить несколько строк.

Удаление при помощи сортировки

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

Удаление при помощи выделения группы ячеек

Для того чтобы удалить пустые строки в Excel 2007 и 2010 можно использовать возможностью выделения группы ячеек. Для этого выделяем столбец, содержащий пустые ячейки, после чего находим на ленте Excel вкладку "Главная", в группе "Редактирование" выбираем кнопку "Найти и выделить" и выбираем пункт "Выделение группы ячеек". В появившемся диалоговом окне "Выделение группы ячеек" включаем опцию "Пустые ячейки" и нажимаем кнопку ОК. В предварительно выделенном столбце будут выделены все пустые ячейки. Остается кликнуть правой кнопкой мыши в любом месте выделенного поля и выбрать пункт "Удалить. " в контекстном меню, а в появившемся диалоговом окне "Удаление ячеек" выбрать пункт "Строка" и нажать ОК. При этом, строго говоря, удаляются не пустые строки, а строки, содержащие пустые ячейки в предварительно выделенном столбце.

Читайте также:  Телевизор lg не работают входы

Нестандартные методы удаления пустых строк

Программное удаление макросом VBA

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

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

Автоматическое удаление с использованием надстройки

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

Пользователь на свой выбор может удалять либо скрывать пустые строки. Может удалять либо скрывать строки содержащие либо не содержащие заданный текст, при этом на свой выбор учитывать либо не учитывать регистр. Возможен одновременный поиск сразу нескольких значений, введенных через точку с запятой (;). Пользователь также может на свое усмотрение расширять область действия макроса и ограничивать его, задавая номера первой и последней строки. Кроме того, надстройка освобождает пользователя от поиска нужного макроса, так как позволяет вызывать диалоговое окно прямо из панели инструментов Excel.

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

Читайте также:  Фильтр для вытяжки от запаха

1 Sudgenke [2017-03-16 20:49:00]

Здесь то, что я пытаюсь достичь через все ячейки на листе, содержащем строку, с ограниченным успехом:

| ПРИМЕР |
cell1_empty_line
cell1_text1
cell1_empty_line
+ ——————— +
cell2_text1
cell2_emptyline
cell2_text2
+ ——————— +
cell3_emptyline
cell3_emptyline
cell3_text1
+ ——————— +

Любое предложение для такого макроса?

vba excel-vba excel

4 ответа

2 A.S.H [2017-03-17 08:21:00]

Используйте этот макрос, чтобы удалить все пустые строки внутри всех ячеек:

Если вы говорите о пустых строках в данной ячейке, то один из них должен работать:

Cells.Replace what: = Chr (13), Замена: = "", LookAt: = xlPart

Cells.Replace what: = Chr (10), Замена: = "", LookAt: = xlPart

0 Variatus [2017-03-17 09:04:00]

Перед внедрением этого решения установите значения двух переменных вверху.

Этот параметр оставляет начало с первого столбца, но исключает первую строку, которая может содержать заголовки столбцов.

Это достаточно общее для обработки любого столбца ячеек с любым количеством строк в каждой ячейке. Он предполагает, что все ваши значения находятся в столбце "А", начиная со строки 1 активного листа:

Функция рекурсивного замещения избавляет от двухстрочных каналов в тексте ячейки. Как только это будет сделано, в начале и конце строки будет не больше VbLf. Последние два оператора if ищут и удаляют последний.

Автоподбор в конце является необязательным и предназначен для чистоты результата; он просто уплотняет ячейки до минимальной высоты.

Мне нужно, чтобы этот код выглядел снизу вверх, и как только он достигает ячейки в заполненном столбце G, он прекращает удаление строк. Кто-нибудь может мне помочь. В столбце G будут пробелы, но мне просто нужно посмотреть снизу вверх до последней заполненной ячейки в столбце G и удалить все, что ниже.

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

Читайте также:  Что такое pocket в яндекс

1 ответ

Вместо Delete вы можете использовать Clear или, если вы хотите сохранить форматирование ниже последней строки, вы можете использовать ClearContents .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *