Печать выборочных строк в Microsoft Excel — задача, с которой сталкивается каждый второй пользователь при работе с большими таблицами. Нужно отправить на принтер только несколько позиций из списка в 500 строк? Или распечатать отчёт с данными за конкретный квартал, исключив остальные месяцы? В этой статье разберём 5 проверенных способов, как печатать только нужные строки — от элементарных до продвинутых, включая макросы для автоматизации.
Важно понимать: Excel по умолчанию печает весь лист или выделенную область, но не всегда корректно обрабатывает разрозненные фрагменты. Мы покажем, как обойти это ограничение с помощью встроенных инструментов (Область печати, Фильтры), а также раскроем секреты работы с скрытыми строками и VBA-кодом для опытных пользователей. Все методы протестированы на Excel 2019-2026 и Office 365, но большинство подойдёт и для старых версий (2013/2016).
Если вы торопитесь — воспользуйтесь быстрым способом в 3 клика. Для сложных задач (например, печать строк по условию) читайте раздел про автоматизацию через VBA.
Почему стандартная печать не работает с выборочными строками
Проблема кроется в логике Excel: программа оптимизирована для печати сплошных диапазонов. Когда вы выделяете несколько несмежных строк (например, 5-ю, 12-ю и 20-ю), а затем нажимаете Ctrl+P, Excel игнорирует разрывы и печатает всю область между первой и последней выделенной строкой. Это поведение заложено в ядро программы и не менялось с Excel 2007.
Вот что происходит"под капотом":
- 🔹 Вы выделяете строки
3:3,7:7и10:12. - 🔹 Excel определяет минимальный и максимальный адреса — в данном случае
3:12. - 🔹 На печать отправляется весь диапазон, включая пустые строки и данные, которые вы не хотели печатать.
Единственный способ обойти это — создать отдельные области печати или скрыть ненужные строки перед выводом на принтер. Далее мы покажем, как это сделать правильно.
Способ 1: Быстрая печать выделенных строк (3 клика)
Самый простой метод — использовать область печати. Он подходит, если нужно распечатать несколько смежных строк (например, с 5-й по 10-ю) или несмежные блоки (например, строки 2, 6-8 и 15).
Инструкция:
- Выделите нужные строки, удерживая
Ctrl(для несмежных строк) или просто протяните курсор (для смежных). - Перейдите на вкладку
Разметка страницы→ нажмитеОбласть печати→Задать. - Откройте предварительный просмотр (
Ctrl+P) и нажмитеПечать.
⚠️ Внимание: Если после установки области печати вы измените данные в таблице, область не обновится автоматически. Придётся задавать её заново или использовать метод со скрытием строк.
Выделены ТОЛЬКО нужные строки|
Установлена область печати|
Предварительный просмотр показывает корректные данные|
На принтере достаточно бумаги-->
Способ 2: Печать через скрытие ненужных строк
Этот метод идеален, когда нужно исключить из печати строк, оставив лишь несколько. Например, у вас таблица на 200 строк, а распечатать требуется только 10. Скрывать ненужные строки быстрее, чем выделять нужные.
Как это работает:
- Выделите строки, которые НЕ нужно печатать.
- Кликните правой кнопкой →
Скрыть(или нажмитеCtrl+9). - Установите область печати:
Разметка страницы → Область печати → Задать. - Распечатайте документ (
Ctrl+P). - После печати верните скрытые строки: выделите соседние видимые строки → правый клик →
Отменить скрытие.
💡 Полезный совет: Если строк много, используйте фильтр для быстрого скрытия. Например, отфильтруйте данные по значению в столбце, а затем скройте все строки, кроме видимых.
Как скрыть строки с помощью фильтра
1. Выделите заголовки столбцов (строку 1).
2. Нажмите Данные → Фильтр.
3. Кликните на стрелку в столбце, по которому хотите фильтровать (например,"Статус").
4. Снимите все галочки, кроме нужного значения (например,"Выполнено").
5. Скрытые строки автоматически исключатся из печати.
Способ 3: Печать отфильтрованных строк (для больших таблиц)
Фильтры в Excel — мощный инструмент для работы с данными, и их можно использовать для выборочной печати. Этот метод подходит, когда строки для печати объединяет общий признак (например, дата, категория, статус).
Пример: у вас таблица заказов, и нужно распечатать только те, где статус"Оплачено". Вот как это сделать:
- Активируйте фильтр:
Данные → Фильтр(или нажмитеCtrl+Shift+L). - В столбце со статусом кликните на стрелку → снимите все галочки, кроме"Оплачено" →
OK. - Установите область печати:
Разметка страницы → Область печати → Задать. - Распечатайте (
Ctrl+P) и не забудьте после этого сбросить фильтр (кнопкаОчиститьв меню фильтра).
⚠️ Внимание: Если в таблице есть промежуточные итоги или сводные таблицы, фильтр может работать некорректно. В этом случае используйте метод со скриптами VBA.
Преимущества метода:
- 🔹 Не нужно вручную выделять строки.
- 🔹 Можно печатать данные по нескольким критериям (например,"Оплачено" +"Дата > 01.01.2026").
- 🔹 Подходит для таблиц с тысячами строк.
Способ 4: Автоматизация через VBA (для продвинутых)
Если вам регулярно нужно печатать строки по условию (например, все строки, где значение в столбце B больше 1000), стоит автоматизировать процесс с помощью макроса VBA. Этот метод требует минимальных знаний программирования, но экономит часы времени.
Пример кода для печати строк, где в столбце C значение равно"Да":
Sub PrintSelectedRows
Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim printRange As Range
Set ws = ActiveSheet
Set rng = ws.UsedRange
For Each cell In rng.Columns("C").Cells
If cell.Value ="Да" Then
If printRange Is Nothing Then
Set printRange = cell.EntireRow
Else
Set printRange = Union(printRange, cell.EntireRow)
End If
End If
Next cell
If Not printRange Is Nothing Then
printRange.PrintOut
Else
MsgBox"Нет строк для печати!", vbExclamation
End If
End Sub
Как использовать этот код:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в модуль:
Вставка → Модуль. - Закройте редактор и запустите макрос:
Разработчик → Макросы(илиAlt+F8).
💡 Совет: Чтобы макрос работал быстрее на больших таблицах, отключите обновление экрана в начале кода:
Application.ScreenUpdating = False
и включите в конце:
Application.ScreenUpdating = True
Сравнение методов: какой выбрать?
Чтобы выбрать оптимальный способ, оцените свои задачи по этим критериям:
| Метод | Сложность | Подходит для | Ограничения |
|---|---|---|---|
| Область печати | ⭐ | Небольших таблиц, разовых задач | Неудобно для несмежных строк |
| Скрытие строк | ⭐⭐ | Таблиц со многими ненужными строками | Нужно помнить о возврате скрытых строк |
| Фильтры | ⭐⭐ | Данных с общим признаком | Не работает со сложными условиями |
| VBA | ⭐⭐⭐ | Регулярных задач, больших таблиц | Требует настройки макросов |
🔹 Для одноразовых задач используйте область печати или скрытие строк.
🔹 Для регулярной печати по условию (например, еженедельные отчёты) настройте макрос VBA.
🔹 Для больших таблиц с повторяющимися критериями оптимальны фильтры.
Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при выборочной печати. Вот самые распространённые ошибки и их решения:
- 🚫 Печатаются пустые страницы: Проверьте, не установлены ли разрывы страниц вручную (
Вид → Разметка страницы). Удалите их, если они мешают. - 🚫 Некорректные номера страниц: Если используете скрытые строки, сбросьте нумерацию в
Разметка страницы → Колонтитулы. - 🚫 Макрос не работает: Убедитесь, что в настройках безопасности разрешено выполнение макросов (
Файл → Параметры → Центр управления безопасностью). - 🚫 Фильтр не применяется: Проверьте, что данные в столбце имеют одинаковый формат (например, даты не смешаны с текстом).
⚠️ Внимание: Если вы печатаете таблицу с объединёнными ячейками, некоторые методы (например, скрытие строк) могут нарушить структуру документа. В этом случае дублируйте данные на отдельном листе перед печатью.
Ещё одна частая проблема — несовпадение того, что видно на экране, и того, что печатается. Это происходит из-за:
- 🔹 Настроек масштаба (
Разметка страницы → Масштаб). - 🔹 Полей страницы (уменьшите их в
Разметка страницы → Поля). - 🔹 Скрытых столбцов (они могут"съедать" место на странице).
Частые вопросы
Можно ли печатать выбранные строки на разных листах?
Да, но для этого нужно:
- Скопировать нужные строки на отдельные листы.
- На каждом листе установить область печати.
- В предварительном просмотре (
Ctrl+P) выбрать опцию"Печатать весь документ".
Или используйте VBA для автоматического распределения строк по листам.
Почему при печати пропали границы ячеек?
Это происходит, если в настройках печати отключён параметр Печатать линии сетки. Чтобы вернуть границы:
- Перейдите в
Разметка страницы → Лист → Печатать. - Поставьте галочку напротив
Линии сетки.
Если границы были нарисованы вручную (Главная → Границы), убедитесь, что они не белого цвета (проверьте в Формат ячеек → Граница).
Как распечатать только видимые строки после фильтрации?
По умолчанию Excel печатает все строки, даже скрытые фильтром. Чтобы печатать только видимые:
- Установите область печати (
Разметка страницы → Область печати → Задать). - В предварительном просмотре (
Ctrl+P) нажмитеНастройки→Печатать только видимые ячейки.
Можно ли сохранить настройки печати для повторного использования?
Да, есть два способа:
- Шаблон: Сохраните файл как шаблон (
.xltx) с настроенной областью печати. - Макрос: Запишите макрос, который будет автоматически устанавливать область печати и параметры страницы.
Пример кода для сохранения настроек:
Sub SavePrintSettings
ActiveSheet.PageSetup.PrintArea ="$A$1:$D$100"' Диапазон
ActiveSheet.PageSetup.Orientation = xlLandscape' Альбомная
ActiveSheet.PageSetup.Zoom = 85' Масштаб
End Sub
Как печатать строки с определённым цветом фона?
Для этого нужен VBA-скрипт, который будет проверять цвет ячеек. Пример кода для печати строк с жёлтым фоном:
Sub PrintColoredRows
Dim rng As Range, cell As Range, printRange As Range
Set rng = ActiveSheet.UsedRange
For Each cell In rng.Columns(1).Cells' Проверяем столбец A
If cell.Interior.Color = RGB(255, 255, 0) Then' Жёлтый цвет
If printRange Is Nothing Then
Set printRange = cell.EntireRow
Else
Set printRange = Union(printRange, cell.EntireRow)
End If
End If
Next cell
If Not printRange Is Nothing Then printRange.PrintOut
End Sub
Чтобы узнать код цвета, выделите ячейку и запустите в редакторе VBA:
MsgBox Selection.Interior.Color