Ручная очистка книги Excel от десятков пустых вкладок — рутина, отнимающая время. В отличие от базовых операций, таких как закрепление верхней строки в Excel, удаление листов вручную может затянуться. Использование простого VBA-макроса автоматизирует этот процесс за секунды.
Видеоинструкция
Пошаговая инструкция по удалению пустых листов
Шаг 1. Откройте редактор VBA
Откройте вашу книгу Excel и нажмите комбинацию клавиш Alt + F11, чтобы запустить встроенный редактор Visual Basic for Applications.
Шаг 2. Создайте новый модуль
В верхнем меню редактора выберите Insert > Module. Перед вами откроется пустое окно для ввода кода.
Шаг 3. Вставьте VBA-код
Скопируйте и вставьте следующий код макроса в открывшееся окно:
Sub DeleteEmptySheets()
Dim ws As Worksheet
Dim count As Integer
count = 0
Application.DisplayAlerts = False
For Each ws In ActiveWorkbook.Worksheets
If Application.WorksheetFunction.CountA(ws.UsedRange) = 0 And ActiveWorkbook.Worksheets.Count > 1 Then
ws.Delete
count = count + 1
End If
Next ws
Application.DisplayAlerts = True
MsgBox "Удалено пустых листов: " & count, vbInformation, "Результат"
End Sub Примечание: Отключение предупреждений через Application.DisplayAlerts = False позволяет избежать назойливых всплывающих окон. Похожий принцип используется, когда нужно настроить закрытие Excel без запроса на сохранение.
Шаг 4. Запустите макрос
Поместите курсор внутрь кода макроса и нажмите клавишу F5 (или зеленую кнопку Run на панели инструментов). Программа мгновенно удалит все абсолютно пустые вкладки и покажет отчет.
Важно: Действие макроса невозможно отменить стандартной комбинацией Ctrl + Z. Перед запуском кода обязательно сохраните резервную копию вашего документа!
Частые ошибки / Устранение неполадок
- Ошибка: Лист кажется пустым, но макрос его не удаляет. На листе могут быть скрытые пробелы, невидимые графические объекты или формулы, настроенные через связывание ячеек в Excel для автообновления. Функция
CountAсчитает такие ячейки заполненными. Очистите лист полностью перед запуском. - Ошибка: В книге должен быть хотя бы один видимый лист. Если все листы в книге пустые, макрос не сможет удалить самый последний оставшийся лист, так как Excel требует наличия минимум одной вкладки.
- Ошибка компиляции: Убедитесь, что скопировали код полностью, включая строки
SubиEnd Sub.
Дополнительно: Как сохранить макрос для постоянного использования
Чтобы макрос был доступен во всех ваших файлах Excel, сохраните его в Личную книгу макросов (Personal.xlsb) или сохраняйте рабочий файл в формате книги с поддержкой макросов (.xlsm).
Часто задаваемые вопросы
Можно ли вернуть удаленные макросом листы?
Нет, действия макросов в Excel не подлежат отмене через Ctrl + Z. Всегда делайте бэкап файла.
Почему макрос пропускает листы с нулевыми значениями?
Если на листе есть формулы, возвращающие 0 или пустую строку, функция CountA считает их заполненными. Такой лист нужно очистить вручную.








