01 Что делает макрос
Работа с Excel достаточно долгая, и вы увидите, что пустые строки часто могут вызвать хаос на многих уровнях. Они могут вызывать проблемы с формулами, ввести риск при копировании и вставке, а иногда вызывают странное поведение в сводных таблицах. Этот макрос автоматизирует удаление пустых строк.
В этом макросе, мы используем свойство UsedRange объекта ActiveSheet, чтобы определить диапазон c которым мы работаем. Свойство UsedRange дает диапазон, который охватывает ячейки, с введенными данными. Затем устанавливается счетчик, который начинается в последней строке используемого диапазона, чтобы проверить, вся ли строка пуста. Если вся строка действительно пуста, мы убираем строку. Мы продолжаем делать то же самое для каждого цикла, каждый раз увеличивая счетчик на предыдущей строке.
02 Код макроса
Sub
UdalitPustieStroki()
'Шаг 1: Объявляем переменные
Dim
MyRange
As
Range
Dim
iCounter
As
Long
'Шаг 2: Указываем диапазон
Set
MyRange = ActiveSheet.UsedRange
'Шаг 3: Начинаем обратный цикл
For
iCounter = MyRange.Rows.Count
To
1
Step
-1
'Шаг 4: Если строка пустая, удаляем ее
If
Application.CountA(Rows(iCounter).EntireRow) = 0
Then
Rows(iCounter).Delete
End
If
'Шаг 5: Увеличиваем счетчик
Next
iCounter
End
Sub
03 Как работает макрос
1. Макрос на первом шаге объявляет две переменные. Первая переменная является переменной объекта и называется MyRange. Это переменная объект, который определяет наш целевой диапазон. Другая переменная является переменной Long Integer и называется iCounter. Эта переменная служит в качестве счетчика.
2. На шаге 2 макрос заполняет переменную MyRange со свойством UsedRange объекта ActiveSheet. Свойство UsedRange дает диапазон, который охватывает ячейки, которые были использованы для ввода данных. Обратите внимание, что, если мы хотим указать фактический диапазон или именованный диапазон, мы могли бы просто ввести свое название — Range («MyNamedRange»).
3. На этом этапе макрос устанавливает параметры для счетчика, чтобы начать на последней строке диапазона (MyRange.Rows.Count) и заканчивается в первой строке выбранного диапазона. Обратите внимание, что мы используем Шаг-1. Поскольку мы указываем шаг -1, Excel знает, что мы будем увеличивать счетчик в обратном направлении, двигаясь на один шаг на каждой итерации. В целом, Шаг 3 говорит Excel, начать в последней строке выбранного диапазона, двигаясь назад, пока он не дойдет до первой строки диапазона. При работе с диапазоном, вы можете явно вызвать какую-либо конкретную строку в диапазоне, передавая номер индекса строки к коллекции Rows диапазона.
4. На шаге 4, макрос использует переменную iCounter как номер индекса для коллекции Строки MyRange. Это помогает точно определить какой именно ряд мы обрабатываем в текущем цикле. Макрос проверяет, являются ли ячейки в этой строке пустыми. Если они пусты, макрос удаляет всю строку.
5. На шаге 5, макрос возвращается к началу цикла, увеличивая счетчик.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь