Как вставить номера страниц в Excel по порядку: от колонтитулов до VBA

Нумерация страниц в Microsoft Excel — казалось бы, элементарная задача, но она регулярно ставит пользователей в тупик. В отличие от Word, где номера страниц добавляются за два клика, в электронных таблицах этот процесс зависит от контекста: нужна ли нумерация только для печати, требуется ли сквозная нумерация через несколько листов или необходимо вставить номера внутри ячеек для дальнейшей обработки. Даже опытные пользователи иногда путают настройки колонтитулов с нумерацией строк, что приводит к печати документов без порядковых номеров или с дублирующимися значениями.

В этой статье мы разберём 5 рабочих способов пронумеровать страницы в Excel — от базовых (через меню "Печать") до продвинутых (с использованием VBA). Особое внимание уделим распространённым ошибкам, из-за которых номера сбиваются при печати больших таблиц, и покажем, как исправить нумерацию в книгах с несколькими листами. Все инструкции актуальны для версий Excel 2010–2026 (включая Microsoft 365) и адаптированы для Windows/macOS.

Если вам нужно быстро добавить номера исключительно для печати, достаточно настроить колонтитулы. Но что делать, когда требуется:

  • 📄 Сквозная нумерация через все листы книги (например, для многостраничного отчёта)?
  • 🔢 Динамические номера в ячейках, которые обновляются при добавлении строк?
  • 🖨️ Разные форматы нумерации для чётных/нечётных страниц?
  • 📊 Нумерация с префиксами (например, "Стр. 1 из 10")?

Ответы — ниже.

1. Нумерация страниц через колонтитулы (для печати)

Самый простой способ добавить номера — использовать встроенные колонтитулы. Этот метод подходит, если вам нужны номера только на печатной версии документа. В самих ячейках таблицы они отображаться не будут.

Инструкция:

  1. Перейдите на вкладку Вид → Разметка страницы (или нажмите кнопку "Разметка страницы" в правом нижнем углу окна).
  2. Кликните по области верхнего или нижнего колонтитула (в зависимости от того, где хотите разместить номер).
  3. В открывшейся вкладке Работа с колонтитулами → Конструктор выберите Номер страницы.
  4. При необходимости добавьте текстовый префикс (например, "Страница ") или форматирование через панель инструментов.

⚠️ Внимание: Если после добавления номеров в колонтитулах отображается &[Page] вместо цифр — не пугайтесь. Это нормально: реальные номера появятся только в режиме предварительного просмотра (Файл → Печать) или на распечатке.

📊 Как часто вы печатаете таблицы из Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Чтобы проверить результат, нажмите Ctrl + F2 (предварительный просмотр). Если номера не отображаются или сбиваются, проверьте:

  • 🔹 Настройки принтера: иногда драйвер сбрасывает колонтитулы.
  • 🔹 Разрывы страниц: если они установлены вручную (Разметка страницы → Разрывы), нумерация может сбиваться.
  • 🔹 Масштаб печати: при уменьшении листа до "1 страницы на лист" номера могут пропадать.

2. Сквозная нумерация через несколько листов

По умолчанию Excel нумерует страницы в пределах одного листа. Если у вас книга с 10 листами, и каждый из них занимает по 2 страницы при печати, то на всех листах будут номера "1" и "2". Чтобы сделать нумерацию сквозной (1, 2, 3... 20), нужно использовать макрос или ручную настройку.

Способ без VBA (для Excel 2013+):

  1. Перейдите на первый лист книги.
  2. В режиме разметки страницы добавьте номер в колонтитул (как в предыдущем разделе).
  3. Кликните правой кнопкой по колонтитулу и выберите Формат колонтитула.
  4. В поле для номера страницы введите формулу:
    =СТРАНИЦА() + (ЛИСТ()-1)*СТРАНИЦЫ()

    Где:

    • СТРАНИЦА() — текущий номер страницы на листе.
    • ЛИСТ() — порядковый номер листа в книге.
    • СТРАНИЦЫ() — общее количество страниц на текущем листе.

⚠️ Внимание: Этот метод работает только если все листы книги имеют одинаковое количество страниц при печати. Если на одном листе 2 страницы, а на другом — 3, нумерация собьётся. В таком случае используйте VBA (см. раздел 5).

Проверьте количество страниц на каждом листе (Файл → Печать)

Убедитесь, что все листы имеют одинаковые параметры печати

Сохраните резервную копию книги перед изменением колонтитулов

Тестируйте нумерацию на копии документа, а не в оригинале-->

3. Нумерация страниц в ячейках таблицы

Если номера нужны не только для печати, но и для дальнейшей работы с данными (например, для ссылок или фильтрации), их можно вставить прямо в ячейки. Для этого используйте формулу:

=СТРОКА()-МИН(СТРОКА($A:$A))+1

Как это работает:

  • 🔢 СТРОКА() — возвращает номер текущей строки.
  • 🔢 МИН(СТРОКА($A:$A)) — находит первую заполненную строку в столбце A.
  • 🔢 +1 — корректирует нумерацию, чтобы она начиналась с 1, а не с 0.

Пример: если данные начинаются с 5-й строки, формула вернёт "1" для 5-й строки, "2" для 6-й и т. д.

💡 Полезный совет: Чтобы нумерация автоматически обновлялась при добавлении/удалении строк, преобразуйте диапазон с формулами в умную таблицу (Главная → Форматировать как таблицу). Тогда номера будут пересчитываться динамически.

Способ Преимущества Недостатки Когда использовать
Колонтитулы Простота, не требует формул Только для печати, не видно в ячейках Отчёты, которые не редактируются после печати
Формула СТРОКА() Динамическая нумерация, видно в ячейках Сбивается при удалении строк Рабочие таблицы с частыми изменениями
Сквозная формула Работает через несколько листов Сложно настроить, требует одинакового количества страниц Многостраничные книги с однотипными листами
VBA-макрос Гибкость, работает в любых сценариях Требует знаний программирования Автоматизация отчётов, сложные шаблоны

4. Нумерация с префиксами ("Страница 1 из 10")

Чтобы добавить к номеру страницы общее количество страниц (например, "Страница 3 из 7"), используйте комбинацию полей в колонтитулах:

  1. В режиме разметки страницы кликните по колонтитулу.
  2. В панели инструментов выберите:
    • 📌 Номер страницы (вставит &[Page]).
    • 📌 Число страниц (вставит &[Pages]).
  • Добавьте текстовые элементы вручную. Пример:
    Страница &[Page] из &[Pages]
  • ⚠️ Внимание: Поле &[Pages] работает только для текущего листа. Если вам нужно общее количество страниц во всей книге, используйте VBA (см. следующий раздел) или вставляйте число вручную.

    Для автоматического подсчёта страниц во всей книге можно использовать этот макрос:

    Sub UpdateTotalPages()
    

    Dim ws As Worksheet

    Dim totalPages As Long

    For Each ws In ThisWorkbook.Worksheets

    totalPages = totalPages + ws.HPageBreaks.Count + 1

    Next ws

    ActiveSheet.PageSetup.CenterFooter = "Страница &P из " & totalPages

    End Sub

    💡 Полезный совет: Если вы часто печатаете отчёты с такой нумерацией, сохраните файл как шаблон (.xltx) с уже настроенными колонтитулами. Тогда не придётся настраивать всё заново.

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

    Если стандартные методы не подходят (например, нужно пропустить первую страницу или использовать разные форматы нумерации для чётных/нечётных страниц), поможет VBA. Ниже приведён макрос для сквозной нумерации с учётом всех листов книги:

    Sub AddPageNumbers()
    

    Dim ws As Worksheet

    Dim pageNum As Long

    pageNum = 1

    For Each ws In ThisWorkbook.Worksheets

    With ws.PageSetup

    .LeftFooter = "&""Arial,Большой""&10 Страница " & pageNum

    pageNum = pageNum + ws.HPageBreaks.Count + 1

    End With

    Next ws

    End Sub

    Как использовать:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте код в модуль (Insert → Module).
    3. Запустите макрос нажатием F5.
    4. Важно: Этот макрос перезаписывает левый колонтитул на всех листах. Если у вас там уже есть данные, сохраните их заранее или модифицируйте код.

      Как изменить шрифт и размер номера страницы в VBA?

      В строке .LeftFooter = "&""Arial,Большой""&10 Страница " & pageNum:

      - Arial — название шрифта (можно заменить на Times New Roman или другой).

      - Большой — стиль (возможные значения: Обычный, Курсив, Жирный).

      - &10 — размер шрифта в пунктах (замените на &12 для увеличения).

      6. Распространённые ошибки и их исправление

      Даже после правильной настройки нумерация может работать некорректно. Вот типичные проблемы и их решения:

      • 🔴 Номера не отображаются в предварительном просмотре

        Причина: колонтитулы отключены в настройках принтера. Решение: проверьте параметры печати (Файл → Печать → Настройки принтера) и убедитесь, что флажок "Печатать колонтитулы" установлен.

      • 🔴 Нумерация начинается не с 1

        Причина: в колонтитуле используется формула со смещением. Решение: удалите все ручные правки в поле номера страницы и вставьте &[Page] заново.

      • 🔴 На всех листах номер "1"

        Причина: не настроена сквозная нумерация. Решение: используйте макрос из раздела 5 или проверьте формулу в колонтитуле (см. раздел 2).

      • 🔴 Номера накладываются на текст

        Причина: слишком большие поля страницы. Решение: уменьшите отступы в Разметка страницы → Поля.

    ⚠️ Внимание: Если вы используете Excel Online, некоторые функции (например, VBA или расширенные настройки колонтитулов) могут быть недоступны. В этом случае нумерацию придётся добавлять вручную или использовать настольную версию Excel.

    FAQ: Частые вопросы по нумерации страниц в Excel

    Можно ли сделать нумерацию римскими цифрами (I, II, III)?

    Да, но только через VBA. Стандартные колонтитулы поддерживают только арабские цифры. Пример макроса:

    Sub RomanPageNumbers()
    

    Dim ws As Worksheet

    Dim pageNum As Long, roman As String

    pageNum = 1

    For Each ws In ThisWorkbook.Worksheets

    roman = WorksheetFunction.Roman(pageNum)

    ws.PageSetup.RightFooter = "&""Times New Roman""&10 " & roman

    pageNum = pageNum + ws.HPageBreaks.Count + 1

    Next ws

    End Sub

    Как убрать номер на первой странице?

    В Excel нет встроенной опции "Разные колонтитулы на первой странице" (в отличие от Word). Обходные пути:

    1. Используйте VBA для условной вставки номера.
    2. Добавьте пустой колонтитул на первый лист вручную.
    3. Напечатайте первую страницу отдельно, а затем остальные с нумерацией.
    Почему при печати номера страниц не совпадают с предварительным просмотром?

    Это происходит из-за:

    • 🖨️ Драйвера принтера: некоторые драйверы игнорируют колонтитулы. Решение: обновите драйвер или сохраните документ в PDF.
    • 📏 Масштаба печати: если выбрано "Разместить на одной странице", разрывы и нумерация сбиваются. Решение: используйте "Обычный масштаб".
    • 🔄 Ручных разрывов страниц: удалите их через Разметка страницы → Разрывы → Сбросить все разрывы страниц.
    Как пронумеровать страницы в Excel для Mac?

    Процесс аналогичен Windows-версии, но есть нюансы:

    • 🍎 В Excel для Mac нет кнопки "Разметка страницы" в статусной строке. Используйте меню Вид → Разметка страницы.
    • 🍎 Колонтитулы настраиваются через Вставка → Колонтитулы (а не через конструктор).
    • 🍎 VBA работает только в настольной версии, не в Excel Online.
    Можно ли сделать нумерацию в виде "A-1, A-2, B-1, B-2" для разных разделов?

    Да, но потребуется комбинация VBA и ручной настройки. Пример логики:

    1. Добавьте в колонтитул поле с буквой раздела (например, &"A-").
    2. Используйте макрос для динамического обновления префикса на каждом листе.

    Готовый код:

    Sub SectionPageNumbers()
    

    Dim ws As Worksheet, section As String

    section = "A"

    For Each ws In ThisWorkbook.Worksheets

    If ws.Index Mod 3 = 0 Then section = Chr(Asc(section) + 1)

    ws.PageSetup.CenterFooter = section & "-&P"

    Next ws

    End Sub

    Этот макрос меняет букву раздела каждые 3 листа (настройте условие под свою задачу).