Книга: Excel. Трюки и эффекты
Удаление пустых строк на рабочем листе
Разделы на этой странице:
Удаление пустых строк на рабочем листе
В процессе работы иногда возникает необходимость избавиться от пустых строк на рабочем листе. В большинстве случаев для решения данной задачи используются штатные средства программы. Однако при большом количестве пустых строк целесообразно воспользоваться макросом, код которого приведен в листинге 3.52.
Листинг 3.52. Удаление пустых строк (вариант 1)
Sub DeleteEmptyStrings()
Dim intLastRow As Integer ' Номер последней используемой
строки
Dim intRow As Integer ' Номер проверяемой строки
' Получение номера последней используемой строки
intLastRow = Worksheets(ActiveSheet.Index).UsedRange.Row + _
Worksheets(ActiveSheet.Index).UsedRange.Rows.Count – 1
' Счетчик устанавливается на используемую первую строку
intRow = Worksheets(ActiveSheet.Index).UsedRange.Row
' Удаление пустых строк
Do While intRow <= intLastRow
If ActiveSheet.Rows(intRow).Text = "" Then
' Удаление строки
ActiveSheet.Rows(intRow).Delete
' Данные сдвинулись вверх, поэтому номер последней _
строки уменьшился, а текущей – не изменился
intLastRow = intLastRow – 1
Else
' Текущая строка заполнена – переходим к следующей
intRow = intRow + 1
End If
Loop
End Sub
При выполнении данной операции следует учитывать, что будут удалены только пустые строки, представляющие собой «пробелы». Например, если данные хранятся в строках с 1 по 10, но при этом строки 5 и 7 пустые, то после применения макроса строки 5 и 7 будут удалены и заменены следующими за ними строками с данными, а строки 11,12,13,14…. останутся на месте.
К аналогичному результату приведет также использование такого макроса (листинг 3.53). В данном случае удаление пустых строк происходит снизу вверх. Это позволяет упростить алгоритм, так как не нужно учитывать сдвиг данных вверх при удалении строк.
Листинг 3.53. Удаление пустых строк (вариант 2)
Sub DeleteEmptyStrings1()
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
Для удобства работы можно создать кнопку и привязать к ней какой-либо из приведенных макросов – тогда удаление пустых строк будет производиться при нажатии этой кнопки.
- Подсчет количества открытий файла
- Получение «закрытой» информации
- Произвольный текст в строке состояния
- Быстрое изменение заголовка окна
- Ввод данных с помощью диалогового окна
- Применение функции без ввода ее в ячейку
- Скрытие строк и столбцов от посторонних
- Быстрое выделение ячеек, расположенных через интервал
- Определение количества ячеек в диапазоне и суммы их значений
- Подсчет именованных объектов
- Быстрый поиск курсора
- Поиск начала и окончания диапазона, содержащего данные
- Трюки с примечаниями
- Дополнение панели инструментов
- Примеры создания панелей инструментов
- Формирование пользовательского меню
- Проверка наличия файла по указанному пути
- Автоматизация удаления файлов
- Перечень имен листов в виде гиперссылок
- Удаление пустых строк на рабочем листе
- Запись текущих данных в текстовый файл
- Экспорт и импорт данных
- Одновременное умножение всех данных диапазона
- Преобразование таблицы Excel в HTML-формат
- Поиск данных нештатными средствами
- Включение автофильтра с помощью макроса
- Трюки с форматированием
- Вывод информации о текущем документе
- Вывод результата расчетов в отдельном окне
- Вывод разрешения монитора
- Что открыто в данный момент?
- Создание бегущей строки
- Мигающая ячейка
- Вращающиеся автофигуры
- Вызов таблицы цветов
- Создание калькулятора
- Еще о создании пользовательских меню
- Склонение фамилии, имени и отчества
- Получение информации об используемом принтере
- Вывод текущей даты и времени
- Автоматическое создание документов Word на основе табличных данных Excel
- Создание списка панелей инструментов и контекстных меню
- Создание списка пунктов главного меню Excel
- Создание списка пунктов контекстных меню
- Отображение панели инструментов при определенном условии
- Скрытие и отображение панелей инструментов
- Создание меню на основе данных рабочего листа
- Создание контекстного меню
- Просмотр содержимого папки
- Получение информации о состоянии дисков
- Расчет среднего арифметического
- Вывод списка доступных шрифтов
- Создание раскрывающегося списка
- Добавление команды на вкладку
- Инструмент командной строки gbak
- Инструмент командной строки gfix
- Как выделить строку, столбец и ячейки
- Удобная операция объединения строк
- Работа со строками
- Преобразование строки в целое: stoi( )
- Удаление шаблонов узлов STP
- Удаление учебного узла
- Удаление файлов занятий
- Удаление узла
- Добавление, изменение и удаление элементов списка
- Добавление, изменение и удаление столбцов списка