Удаление пустых строк в Excel
Добрый день уважаемые читатели! Очень часто при работе с таблицами нам приходится удалять пустые строки. Когда таблица очень большая это становится реальной проблемой. Можно попробовать их скрыть, но тогда не получится видеть актуальную информацию (по адресам). Поэтому пойдём путём настоящих исследователей - создадим свою команду на удаление пустых строк. Предыдущая статья, посвящённая часам в ячейке - СТАТЬЯ.
На просторах интернета можно встретить ответ на поставленный вопрос, но, как правило, он сводится к одному:
- На вкладке "Главная" нажимаем кнопку "Выделить";
- Выбираем "Пустые ячейки";
- Нажимаем "ОК";
- Нажимаем кнопку "Удалить".
Либо предлагается использовать фильтр. С помощью него выделить пустые строки, а затем их удалить.
Плюсом обоих способов является их "встроенность" в программу. Минусы - большое количество действий и, если таблица, большая, то сложно проверить результат. Но, как говорится, мы не ищем простых путей.
Как всегда напишем небольшой макрос. Его особенностью будет сам алгоритм нахождения пустых строк. Обычно макросы анализируют данные по строкам сверху вниз. Мы же заставим сделать наоборот - снизу вверх. Для того, чтобы не учитывать сдвиг удаляемых пустых строк. Таблица заготовка уже должна быть.
Вставим в наш документ новый модуль:
- Вкладка "Разработчик", блок кнопок "Код", кнопка "Visual Basic";
- Далее "Insert" - > "Module".
Далее вставим следующий код:
Sub DeleteEmptyStrings ()
Dim intRow as Integer
Dim intLastRow as Integer
'получение номера последней строки с данными
intLastRow = ActiveSheet.UsedRange.Row + _
ActiveSheet.UsedRange.Rows.Count - 1
'Удалить пустые строки
For intRow = IntLastRow To 1 Step -1
If ActiveSheet.Rows(intRow).Text = "" Then
ActiveSheet.Rows(intRow).Delete
End If
Next intRow
End Sub
Немного пояснений. Первым делом объявляем две переменные - Row (строка) и LastRow (последняя строка). Тип целое.
Следующей строчкой мы показываем макросу найти последнюю строчку с данными на листе.
Далее "говорим" - в тех строчках где есть текст ничего не делать, где текста нет ("") - эти строчки удалить. Вид таблицы до применения макроса.
Останется сохранить нашу книгу с поддержкой макросов (.xlsm) и выполнить макрос. Жмём на клавиатуре Alt+F8 и видим наш макрос (DeleteEmptyStrings). Щёлкаем "Выполнить"
Таблица примет следующий вид.
Видим, что вторая строка как будто пустая? Нет. В ней во второй ячейке я поставил пробел. Так что макрос правильно посчитал её не пустой и не удалил! Готово!
Ссылка на файл с макросом:
Если остались вопросы - смотрите наше новое видео!