Быстрый подсчет листов в книге Excel

Иван Корнев·09.04.2026·3 мин

Чтобы узнать точное количество листов в открытой книге Excel, используйте формулу =СЧЁТЗ(СписокЛистов()) (в английской версии =COUNTA(Sheets())) в любой ячейке или строке формул. Это мгновенно отобразит общее число всех вкладок, включая скрытые. Если вам нужно автоматизировать процесс или получить детальную статистику, существуют также методы через макросы VBA и создание именованных диапазонов.

Простой способ через формулу массива

Самый доступный метод не требует программирования и работает во всех современных версиях (2016, 2019, 2021, 365). Функция возвращает динамический массив имен всех листов, который мы просто подсчитываем.

Инструкция:

  1. Выберите любую пустую ячейку на активном листе.
  2. Введите формулу:
    • Для русской версии: =СЧЁТЗ(СписокЛистов())
    • Для английской версии: =COUNTA(Sheets())
  3. Нажмите Enter.

Результатом будет целое число — общее количество вкладок в файле.

Функция СписокЛистов() (или Sheets()) учитывает все типы листов: обычные таблицы, диаграммы и скрытые вкладки. Если вы удаляете или добавляете листы, значение в ячейке обновится автоматически после пересчета книги.

Автоматизация через макрос VBA

Если вам нужно часто проверять количество листов в разных файлах или вы работаете с книгами, содержащими «очень скрытые» листы (которые нельзя отобразить через стандартное меню), удобнее использовать макрос. Он выдаст результат во всплывающем окне.

Код для копирования:

Sub ShowSheetCount()
    Dim totalSheets As Integer
    ' Считает все объекты: листы данных и диаграммы
    totalSheets = ThisWorkbook.Sheets.Count
    
    MsgBox "Всего листов в книге: " & totalSheets, vbInformation, "Статистика"
End Sub

Как запустить:

  1. Нажмите Alt + F11, чтобы открыть редактор Visual Basic.
  2. В меню выберите Insert > Module.
  3. Вставьте код выше в белое окно.
  4. Закройте редактор и нажмите Alt + F8, выберите ShowSheetCount и кликните Выполнить.

Для работы макросов файл должен быть сохранен в формате .xlsm (книга с поддержкой макросов). При открытии файла разрешите выполнение содержимого, если появится желтая полоса безопасности.

Создание именованного диапазона для дашбордов

Этот метод полезен, если вы создаете отчеты или панели управления (дашборды) и хотите отображать количество листов в заголовке без использования лишних ячеек на рабочем пространстве.

  1. Перейдите на вкладку Формулы > Диспетчер имен (или нажмите Ctrl + F3).
  2. Нажмите кнопку Создать.
  3. В поле Имя введите, например, ВсегоЛистов.
  4. В поле Диапазон (или «Объект») вставьте формулу: =СЧЁТЗ(СписокЛистов()).
  5. Нажмите ОК.

Теперь в любой ячейке книги можно написать =ВсегоЛистов, и она покажет актуальное число вкладок. Это делает формулы более читаемыми при совместной работе.

Сравнение методов подсчета

МетодСложностьУчитывает скрытые листыАвтообновлениеТребует сохранения макросов
Формула в ячейкеНизкаяДаДаНет
Макрос VBAСредняяДа (включая VeryHidden)Нет (только при запуске)Да (.xlsm)
Именованный диапазонСредняяДаДаНет

Частые ошибки и решения

  • Формула возвращает ошибку #ИМЯ?: Проверьте название функции. В старых версиях Excel (до 2016) функция СписокЛистов() может отсутствовать. В таком случае используйте только макрос VBA.
  • Разделитель аргументов: Если ваша система использует точку с запятой как разделитель, убедитесь, что в формуле нет лишних запятых внутри функций (хотя в данном случае аргументов нет, это важно для вложенных формул).
  • Разница между Sheets и Worksheets: В макросах свойство Worksheets.Count посчитает только листы с таблицами, игнорируя листы диаграмм. Свойство Sheets.Count считает абсолютно все вкладки в книге.

FAQ

Можно ли посчитать только видимые листы? Стандартными средствами Excel это сделать сложно, так как функция СписокЛистов() возвращает все имена независимо от свойства Visible. Для подсчета только видимых потребуется макрос с циклом For Each, проверяющий свойство ws.Visible = -1.

Почему число листов не меняется сразу после удаления вкладки? При использовании формулы пересчет происходит автоматически. Если этого не случилось, нажмите F9 для принудительного пересчета всей книги. Макрос же показывает снимок состояния на момент запуска и не обновляется сам.

Работает ли это в онлайн-версии Excel? Формула =СЧЁТЗ(СписокЛистов()) поддерживается в Excel для веба. Макросы VBA в браузерной версии не работают.