01 Что делает макрос
В некоторых анализах, пустые клетки могут привести к неприятностям. Они могут вызвать проблемы сортировки, вызвать ошибку при автоматическом заполнении, ошибки в сводных таблицах (применить функцию Count вместо функции Sum), и так далее.
Этот макрос может заменить пустые ячейки нулем. Он перебирает все ячейки в заданном диапазоне, а затем использует функцию Len, чтобы проверить длину значений в активной ячейке. Пустые клетки имеют длину символа 0. Если длина действительно 0, макрокоманда вводит 0 в ячейке, эффективно делая замену.
02 Код макроса
SubZamenitPustieYacheikiNulem()'Шаг 1: Объявляем переменныеDimMyRangeAsRangeDimMyCellAsRange'Шаг 2: Сохранить книгу прежде, чем изменить ячейки?SelectCaseMsgBox("Перед изменением ячеек. "& _"Сохранить книгу?", vbYesNoCancel)CaseIs= vbYesThisWorkbook.SaveCaseIs= vbCancelExitSubEndSelect'Шаг 3: Определяем целевой диапазонSetMyRange = Selection'Шаг 4: Запускаем цикл по диапазонуForEachMyCellInMyRange'Шаг 5: Заменяем пустую ячейкуIfLen(MyCell.Value) = 0ThenMyCell = 0EndIf'Шаг 6: Получаем следующую ячейку в диапазонеNextMyCellEndSub
03 Как работает макрос
1. Шаг 1 объявляет две переменные объекта Range.
2. При выполнении макрос уничтожает стек отката. Это означает, что вы не сможете отменить изменения, поэтому нужно сохранить книгу перед запуском макроса. Это делает Шаг 2.
3. Шаг 3 заполняет переменную MyRange с целевым диапазоном.
4. Шаг 4 начинает цикл через каждую ячейку в целевом диапазоне. После того, как клетка активируется.
5. Шаг 5 использует функцию IsEmpty, чтобы убедиться, что ячейка не пуста. Затем мы используем функцию Len, которая является стандартной функцией Excel и возвращает значение, соответствующее длине строки. Если ячейка пуста, то длина будет равна 0. Можно, очевидно, проставить в ячейку любое значение: «N/A», «пока не определено», «Нет данных», и т.д.).
6. Шаг 6 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.
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
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь