Excel vba установить область печати
Обновлено: 21.11.2024
Когда вы нажимаете кнопку Печать в Excel, по умолчанию распечатывается вся электронная таблица, которая часто занимает несколько страниц. Но что, если вам на самом деле не нужно все содержимое огромного рабочего листа на бумаге? К счастью, Excel предоставляет возможность определять детали для печати. Эта функция называется Область печати.
Область печати Excel
Область печати — это диапазон ячеек, которые должны быть включены в окончательный вариант распечатки. Если вы не хотите печатать всю электронную таблицу, задайте область печати, которая включает только ваш выбор.
Если вы нажмете Ctrl + P или кнопку Печать на листе с определенной областью печати, будет напечатана только эта область.
Вы можете выбрать несколько областей печати на одном листе, и каждая область будет напечатана на отдельной странице. При сохранении книги также сохраняется область печати. Если вы передумаете позже, вы можете очистить область печати или изменить ее.
Определение области печати дает вам больше контроля над тем, как выглядит каждая напечатанная страница, и в идеале вы всегда должны устанавливать область печати перед отправкой рабочего листа на принтер. Без него вы можете получить беспорядочные, трудночитаемые страницы, на которых некоторые важные строки и столбцы обрезаны, особенно если ваш рабочий лист больше используемой вами бумаги.
Как установить область печати в Excel
Чтобы указать Excel, какой раздел ваших данных должен отображаться в печатной копии, выполните одно из следующих действий.
Самый быстрый способ задать область печати в Excel
Самый быстрый способ установить постоянный диапазон печати:
- Выберите часть рабочего листа, которую вы хотите напечатать.
- На вкладке Разметка страницы в группе Параметры страницы нажмите Область печати >Установить область печати.
Появится слабая серая линия, обозначающая область печати.
Более информативный способ определения области печати в Excel
Хотите наглядно увидеть все свои настройки? Вот более прозрачный подход к определению области печати:
- На вкладке Макет страницы в группе Параметры страницы нажмите кнопку запуска диалогового окна . Откроется диалоговое окно Параметры страницы.
- На вкладке Лист поместите курсор в поле Область печати и выберите один или несколько диапазонов на листе. Чтобы выбрать несколько диапазонов, не забывайте удерживать клавишу Ctrl.
- Нажмите ОК. ол>р>
- При сохранении книги область печати также сохраняется. Всякий раз, когда вы отправляете рабочий лист на принтер, будет напечатана только эта область.
- Чтобы убедиться, что заданные области действительно нужны, нажмите Ctrl + P и просмотрите каждую страницу в режиме предварительного просмотра.
- Чтобы быстро распечатать определенную часть данных без установки области печати, выберите нужный диапазон(ы), нажмите Ctrl + P и выберите "Печать выделения" в раскрывающемся списке прямо в разделе Настройки. . Дополнительную информацию см. в разделе Как распечатать выделение, лист или всю книгу.
- Выберите первый диапазон, удерживайте нажатой клавишу Ctrl и выберите другие диапазоны.
- На вкладке Разметка страницы в группе Параметры страницы нажмите Область печати >Установить область печати.
- Нажмите Файл Печать или нажмите Ctrl + P .
- В разделе Настройки нажмите стрелку рядом с пунктом Печать активных листов и выберите Игнорировать область печати.
- Выберите первую область печати и нажмите Ctrl + C, чтобы скопировать ее.
- На новом листе щелкните правой кнопкой мыши любую пустую ячейку и выберите Специальная вставка > Связанное изображение.
- Повторите шаги 1 и 2 для других областей печати.
- На новом листе нажмите Ctrl + P, чтобы напечатать все скопированные области печати на одной странице.
- Откройте загруженную книгу и включите макросы, если будет предложено.
- Откройте свою рабочую книгу.
- В книге нажмите клавиши ALT + F8 , выберите нужный макрос и нажмите "Выполнить".
- SetPrintAreaSelectedSheets — устанавливает область печати на выбранных листах как на активном листе.
- SetPrintAreaAllSheets — устанавливает область печати на всех листах текущей книги как на активном листе.
- SetPrintAreaMultipleSheets – задает указанную область печати на всех выбранных листах.
- Выберите ячейки, которые хотите добавить.
- На вкладке Разметка страницы в группе Параметры страницы нажмите Область печати >Добавить в область печати.
- Параметр Добавить в область печати появляется, только если на листе уже есть хотя бы одна область печати.
- Если добавляемые ячейки не находятся рядом с существующей областью печати, создается новая область печати, и она будет напечатана как другая страница.
- Если новые ячейки примыкают к существующей области печати, они будут включены в ту же область и напечатаны на той же странице.
- На вкладке Формулы в группе Определенные имена щелкните Диспетчер имен или нажмите сочетание клавиш Ctrl + F3.
- В диалоговом окне Диспетчер имен выберите диапазон, который нужно изменить, и нажмите кнопку "Изменить".
- Откройте интересующий лист.
- Перейдите на вкладку Разметка страницы в группу Параметры страницы и нажмите кнопку Очистить область печати.
- Все ваши рабочие листы должны иметь одинаковую яркость печати.
- Перед печатью необходимо выбрать все вкладки целевого листа.
- Нажмите клавиши ALT + F11, чтобы открыть редактор Visual Basic.
- В окне Project Explorer слева разверните узел целевой книги и дважды щелкните ThisWorkbook.
- В окне Код этой книги вставьте код.
Как установить несколько областей печати в Excel
Чтобы напечатать несколько разных частей рабочего листа, вы можете выбрать несколько областей печати следующим образом:
Готово! Создается несколько областей печати, каждая из которых представляет свою страницу.
Примечание. Это работает только для несмежных диапазонов. Смежные диапазоны, даже выбранные отдельно, будут включены в одну область печати.
Как заставить Excel игнорировать область печати
Если вам нужна печатная копия всего листа или всей книги, но вы не хотите очищать все области печати, просто скажите Excel игнорировать их:
Как напечатать несколько областей на одной странице
Возможность печати нескольких областей на листе бумаги определяется моделью принтера, а не Excel. Чтобы проверить, доступен ли вам этот параметр, нажмите Ctrl + P , щелкните ссылку Свойства принтера, а затем переключитесь между доступными вкладками диалогового окна Свойства принтера в поисках параметр Страниц на листе.
Если у вашего принтера есть такая опция, вам повезло :) Если такой опции нет, то единственный способ, который я могу придумать, — это скопировать диапазоны печати на новый лист. С помощью функции «Специальная вставка» вы можете связать скопированные диапазоны с исходными данными следующим образом:
Как установить область печати в Excel для нескольких листов с помощью VBA
Если у вас много рабочих листов с одинаковой структурой, вы, очевидно, захотите вывести одинаковую ярость на бумаге. Проблема в том, что выбор нескольких листов отключает кнопку Область печати на ленте. К счастью, есть простой обходной путь, описанный в разделе Как напечатать один и тот же диапазон на нескольких листах.
Если вам нужно регулярно печатать одну и ту же область на нескольких листах, использование VBA может ускорить процесс.
Установить область печати на выбранных листах как на активном листе
Этот макрос автоматически устанавливает области печати для всех выбранных рабочих листов такими же, как на активном листе. Если выбрано несколько листов, активным будет лист, видимый при запуске макроса.
Установить диапазон печати на всех листах как на активном листе
Независимо от того, сколько у вас листов, этот код определяет диапазон печати во всей книге за один раз. Просто установите нужные области печати на активном листе и запустите макрос:
Установить указанную область печати на нескольких листах
При работе с разными книгами может оказаться удобным, если макрос предлагает выбрать диапазон.
Вот как это работает: вы выбираете все целевые листы, запускаете макрос, выбираете один или несколько диапазонов при появлении запроса (чтобы выбрать несколько диапазонов, удерживайте клавишу Ctrl) и нажимаете ОК.
Как использовать макросы
Самый простой способ – загрузить образец книги с макросами области печати и запустить макрос непосредственно из этой книги. Вот как:
Образец книги содержит следующие макросы:
Кроме того, вы можете сохранить файл как книгу с поддержкой макросов (.xlsm) и добавить в нее макрос. Подробные пошаговые инструкции см. в разделе Как вставить и запустить код VBA в Excel.
Как изменить область печати в Excel
Случайно включили ненужные данные или пропустили выбор нескольких важных ячеек? Нет проблем, есть 3 простых способа редактирования области печати в Excel.
Как расширить область печати в Excel
Чтобы добавить дополнительные ячейки в существующую область печати, выполните следующие действия:
Готово!
Это, конечно, самый быстрый способ изменить область печати, но не прозрачный. Чтобы сделать это правильно, вот несколько важных вещей, которые нужно помнить:
Редактировать область печати в Excel с помощью диспетчера имен
Каждый раз, когда вы устанавливаете область печати в Excel, создается определенный диапазон с именем Print_Area, и ничто не мешает вам напрямую изменить этот диапазон. Вот как:
Изменение области печати в диалоговом окне "Параметры страницы"
Еще один быстрый способ настроить область печати в Excel — использовать диалоговое окно Параметры страницы. Лучшее в этом методе то, что он позволяет вам вносить любые изменения — изменять область печати, удалять или добавлять новую.
Как очистить область печати в Excel
Очистить область печати так же просто, как и настроить :)
Как заблокировать область печати в Excel
Если вы часто делитесь своими книгами с другими людьми, вы можете защитить область печати, чтобы никто не мог испортить ваши распечатки. К сожалению, нет прямого способа заблокировать область печати в Excel, даже защитив лист или книгу.
Единственным рабочим решением для защиты области печати в Excel является VBA. Для этого вы добавляете обработчик событий Workbook_BeforePrint, который молча принудительно вызывает указанную область печати непосредственно перед печатью.
Более простым способом было бы установить обработчик событий для активного листа, но это работает со следующими оговорками:
Если разные листы имеют разную структуру, то укажите область печати для каждого листа отдельно.
Приведенный выше макрос задает для области печати значение A1:D10 для Лист1 и значение A1:F10 для Лист2. Вы можете изменить их по своему усмотрению, а также добавить больше листов.
Чтобы добавить обработчик событий в книгу, выполните следующие действия:
Примечание. Чтобы этот подход работал, файл необходимо сохранить как книгу с поддержкой макросов (.xlsm), а макрос должен быть включен при открытии книги.
Проблемы с областью печати Excel
Большинство проблем с печатью в Excel обычно связаны с настройками принтера, а не с областью печати. Тем не менее, следующие советы по устранению неполадок могут оказаться полезными, когда Excel печатает неправильные данные.
Невозможно установить область печати в Excel
Проблема: вы не можете заставить Excel принять заданную вами область печати. В поле Область печати показаны странные диапазоны, но не те, которые вы ввели.
Решение. Попробуйте полностью очистить область печати, а затем выберите ее заново.
Не все столбцы печатаются
Проблема: Вы выбрали определенное количество столбцов для области печати, но не все из них печатаются.
Решение. Скорее всего, ширина столбца превышает размер бумаги. Попробуйте сузить поля или отрегулировать масштаб — выберите Уместить все столбцы на одной странице.
Область печати печатается на нескольких страницах
Проблема: вам нужна распечатка одной страницы, а она печатается на нескольких страницах.
Решение. Несмежные ярости печатаются на отдельных страницах по дизайну. Если вы выбрали только один диапазон, но он разбит на несколько страниц, то, скорее всего, он больше размера бумаги. Чтобы исправить это, попробуйте установить для всех полей значение, близкое к 0, или выберите Уместить лист на одной странице. Дополнительные сведения см. в разделе Как распечатать таблицу Excel на одной странице.
Вот как вы устанавливаете, изменяете и очищаете область печати в Excel.Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Вас также может заинтересовать
5 комментариев к "Область печати Excel: как задать, изменить и очистить"
У меня есть несколько листов с несколькими диапазонами на каждом, которые я экспортирую в один PDF-файл. Мой код VBA работает, за исключением того, что я не могу найти способ установить заголовки для печати в нескольких диапазонах, которые отображаются на одном листе. Например, приведенные ниже элементы управления PDF включают строку «Инвентаризация активов», которая содержит два диапазона для печати («Активы_Кристаллы_И_Подарки, Активы_Электроника»). Я не вижу, как изменить заголовки для каждого диапазона с помощью моего кода.
Будем признательны за любые мысли или идеи.
Вот часть кода и диапазон, содержащий мои элементы управления печатью:
Для каждого R In Range("PDF_Controls").rows
SheetName = R.Cells(, 1).Value
SheetPrintRange = R.Cells(, 2).Value
Sheet (SheetName).PageSetup.PrintArea = SheetPrintRange
SheetPrintTitle = R.Cells(, 3).Value
Sheets(SheetName).PageSetup.PrintTitleRows = SheetPrintTitle
ReDim Preserve pdfSheets(i)
pdfSheets(i) = R.Cells(, 1).Value
i = i + 1
Далее
Worksheets(pdfSheets).Выбрать
Диапазон печати имени листа Строки заголовков печати
Личная информация PI_Personal_Information, PI_Military_Information
Финансовая информация Banking_Accounts, Home_Mortgage, Credit_Cards
Инвентаризация активов Assets_Crystal_And_Keepsakes, Assets_Electronics CrystalTitles
Извините за предыдущее сообщение, элементы управления PDF не выровнены.
"Assets Inventory" – это имя листа.
"Assets_Crystal_And_Keepsakes, Assets_Electronics " – диапазоны печати.
"CrystalTitles " – одна из строк заголовков диапазона.
Я понимаю, как создать более одной области печати на одном листе.
Есть ли способ одновременно установить разные размеры страницы для каждой области печати (желательно без использования VBA)?
Я хотел бы распечатать все платежные ведомости с помощью «Установить область печати», которые сгенерированы в отдельные файлы Excel.
Есть ли какой-нибудь код VBA, который позволил бы мне сделать это с помощью макроса?
Я хочу, чтобы на многостраничном листе печаталось постоянное количество строк без ручной настройки.
Рабочий лист постоянно изменяется: строки вставляются и удаляются, но я хочу иметь возможность печатать одинаковое количество строк на странице независимо от этого. например, 35 строк на каждой странице
Рабочий лист имеет фиксированное количество столбцов, и оно не меняется — только добавление/удаление строк.
Оставить комментарий
Авторское право © 2003–2022 Office Data Apps sp. о.о. Все права защищены. Политика конфиденциальности Условия использования Свяжитесь с нами
Microsoft и логотипы Office являются товарными знаками или зарегистрированными товарными знаками корпорации Microsoft. Google Chrome является товарным знаком Google LLC.
Я просмотрел доски объявлений, но не нашел именно то, что мне нужно. Я пытаюсь найти макрос, который установит область печати. Первый столбец - это A, последний столбец всегда будет M. Первая строка для печати всегда будет 1, переменная будет последней строкой с данными. Будем признательны за любую помощь.
Опубликовано Ричардом Уинфилдом, 14 января 2002 г., 8:06
Этот макрос можно использовать для установки области печати в соответствии с используемым диапазоном активного листа.
Sub SetPrintArea()
ActiveSheet.PageSetup.PrintArea = "archive-reply-head">
Опубликовано Ghentry 14 января 2002 г., 9:20
Отправлено Хуаном Пабло Г. 14 января 2002 г., 12:05
Как насчет этого?
Sub SetArea()
ActiveSheet.PageSetup.PrintArea = Range("A1",Range("M65536").End(xlUp)).Address
End Sub
Опубликовано Ghentry 14 января 2002 г., 12:29
Спасибо. Я выхожу из офиса, но первым делом попробую завтра утром.
Опубликовано Ричардом Уинфилдом, 14 января 2002 г., 12:48
Вот другой подход
Затемнить мой диапазон как строку
myrange = Cells(Rows.Count, 13).End(xlUp).Address
ActiveSheet.PageSetup.PrintArea = "$A$1:" и мой диапазон
Это ищет последнюю использованную ячейку в столбце M и соответствующим образом устанавливает область печати.
Рекомендуемый товар
Управляйте своими данными с помощью Power Query в Excel и Power BI
Актуальные темы
Привет, надеюсь, это имеет смысл. Мне нужно рассчитать комиссию за (1) количество товара и (2) его продажную цену. Буду признателен за предложения
Я создал это расписание таким образом, чтобы отображались только определенные ячейки, когда они заполнены и т. д. Однако к сумме [B] «лишних часов»[/B] не добавляется co
привет :) udf для составления всех частей имени (название, фамилия, имя, фамилия, транскрипция, если другой сценарий), который работает, сделал меня очень счастливым
Здравствуйте. Я много искал на разных форумах, но не могу понять, почему мой код не работает. Я пытаюсь, чтобы вкладка отображалась как v
привет, я пытаюсь использовать функцию усреднения, но она выдает ошибку объекта в этой строке [CODE=vba]Set myRangeC1 = Worksheets("Sheet1").Range("G2").Value[/C
У меня возникли проблемы с вводом пробела в моей формуле. это vlookup в пустой ячейке, мне также нужно, чтобы vlookup имел ошибку, но я не хочу, чтобы
Установить область печати в движущемся диапазоне может быть сложно и неприятно. Вы можете захотеть захватить определенный диапазон с помощью области печати или сделать так, чтобы диапазон печати учитывал только определенные столбцы. Допустим, у вас есть пара вспомогательных столбцов в книге Excel, и вы не хотите, чтобы эти столбцы печатались, но вы хотите, чтобы столбцы были видны. Вы можете вручную настроить область печати, чтобы исключить область печати, но теперь у вас есть дополнительные данные, которые вы добавили, и вы хотите, чтобы область печати обновлялась соответствующим образом.
Следующая процедура VBA создаст область печати, учитывающую столбцы от A до D.
Sub PrintArea()
Размерьте sh как рабочий лист
Установите sh = Sheet1
sh.PageSetup.PrintArea =sh.Range("A1", sh.Range("D65536").End(xlUp)).Address
End Sub
В приведенном выше примере последний использованный диапазон будет зафиксирован в столбце D. Убедитесь, что лист, на котором вы его используете, изменен.
Лист1 — это кодовое имя рабочего листа. Это необходимо скорректировать, если вы используете код на листе, отличном от листа1.
О, это настроено для Excel 2003, поэтому вот обновление для Excel 2007 и более поздних версий.
Sub PrintArea1()
Размерьте sh как рабочий лист
Установите sh = Sheet1
sh.PageSetup.PrintArea = sh.Range("A1", sh.Range("D" & rows.count).End(xlUp)).Address
End Sub
Почему это работает? Ну, единственный диапазон, который рассматривается в области печати, — это от A1 до последней использованной строки в столбце D.
Что, если вы хотите, чтобы это был текущий регион? Возможно, что-то вроде следующего.
Sub testo1()
Sheet1.PageSetup.PrintArea = [A1].CurrentRegion.Address
End Sub
Где все данные в «блоке» данных будут считаться частью области печати. Такой код можно добавить к событию изменения, чтобы макрос не приходилось запускать снова и снова, чтобы он сработал.
Что делает макрос?
Этот макрос автоматически напечатает используемый или активный диапазон ячеек на вашем листе
Как работает макрос?
Мы используем свойство PrintArea, чтобы определить диапазон ячеек, которые будут включены при печати рабочего листа Excel. Объединив его со свойством UsedRange и сохранив код в событии изменения рабочего листа, он становится динамическим, поскольку он срабатывает каждый раз, когда в рабочем листе Excel происходит изменение.
Шаг 1. Активируйте редактор Visual Basic. Нажав сочетание клавиш ALT+F11, вы можете перейти на вкладку «Разработчик» | Visual Basic, чтобы открыть окно проводника Visual Basic. Если вы хотите узнать, как включить вкладку разработчика, посмотрите мое видео на YouTube ниже, чтобы получить несколько простых инструкций.
Шаг 2. Дважды щелкните рабочий лист, где вы хотите установить область печати. В моем примере это Лист 1. Выберите Объект рабочего листа и событие Изменить в раскрывающемся списке Событие.
Шаг 3. Мы используем свойство PageSetup.PrintArea, которое устанавливает или возвращает область печати для печати. Мы устанавливаем его как активный лист.
Шаг 3. Здесь мы устанавливаем область печати как UseRange. Это возвращает объект диапазона, который представляет область используемого рабочего листа. Это идеально, так как это может меняться время от времени. Свойство «Используемый диапазон» представляет верхнюю левую и нижнюю правую ячейки, которые используются на листе. Это включает все ячейки, которые находятся между ними. Звучит идеально для того, что мы хотим, не так ли??
Шаг 4. Протестируйте свой код! Посмотрите в моем примере ниже, где я изменяю области печати, чтобы продемонстрировать этот макрос.
Хотите ли вы скопировать код VBA и попробовать его самостоятельно?
Макрос ByHow To Excel At Excel
Private Sub Worksheet_Change(ByVal Target As Range)
[/stextbox]
Если вам нужны дополнительные советы по Excel и VBA, подпишитесь на мою ежемесячную рассылку, где я делюсь 3 советами по Excel в первую среду месяца и получаю бесплатную электронную книгу, 30 Советы по Excel.
Если вы хотите просмотреть все записи блога из серии "Макропонедельники" или примеры рабочих таблиц, вы можете сделать это, нажав на ссылки ниже.
Как преуспеть в Excel — посты блога о макросах по понедельникам.
Вам нужна помощь с проблемой Excel?.
Наконец, я рад сообщить, что объединился с Excel Rescue, где вы можете БЫСТРО получить помощь. Почему бы не проверить это?.
Читайте также: