Печать нескольких листов на одной странице (Microsoft Excel)
Книги могут содержать все виды данных. Если у вас есть рабочая книга, которая включает в себя несколько листов, каждый из которых содержит лишь небольшой объем данных, вы можете задаться вопросом, есть ли способ распечатать несколько листов на одном листе бумаги.
Есть несколько способов решения этой проблемы. Первый — просто распечатать несколько страниц на листе, используя возможности драйвера вашего принтера. Например, у меня есть более старый HP LaserJet, и драйвер принтера позволяет мне указать количество страниц для печати на листе бумаги. Если я хотел напечатать три или четыре одностраничных рабочих листа на одном листе бумаги, все, что мне нужно было сделать, это выполнить следующие действия:
-
Нажмите Ctrl + P. Excel отображает диалоговое окно «Печать» (Excel 2007) или параметры печати (Excel 2010 и Excel 2013).
-
Если вы используете Excel 2007, выберите параметр «Вся книга» в области «Что для печати» диалогового окна. Если вы используете более позднюю версию Excel, используйте раскрывающийся список непосредственно под заголовком «Параметры», чтобы выбрать «Печатать всю книгу».
-
Нажмите кнопку «Свойства» (Excel 2007) или ссылку «Свойства принтера» (более поздние версии Excel). Excel отображает диалоговое окно «Свойства» для принтера с выбранной вкладкой «Макет».
-
Установите для элемента управления Pages Per Sheet значение 4.
-
Щелкните ОК, чтобы закрыть диалоговое окно Свойства.
-
Нажмите OK, чтобы распечатать рабочие листы.
Ваш принтер может предлагать возможности, аналогичные описанным здесь, но вам может потребоваться выполнить некоторые исследования в диалоговом окне свойств принтера, чтобы найти эту возможность. Конечно, печать таким образом может привести к очень маленькому тексту на распечатке, потому что драйвер принтера просто уменьшает каждую страницу, чтобы занять пропорциональную область напечатанной страницы. Если вы хотите уменьшить количество пробелов и тем самым увеличить размер печатаемого текста, вам нужно искать другое решение.
Многие люди, чтобы объединить напечатанное, фактически создают «рабочий лист для печати», который не содержит ничего, кроме ссылок на области, которые должны быть напечатаны на других листах в книге. Эти ссылки можно сделать либо с помощью формул, относящихся к данным на каждом листе, либо с помощью инструмента камеры в Excel. (Инструмент камеры описан в других выпусках ExcelTips.)
Для автоматизированного решения объединения нескольких рабочих листов в один рабочий лист вы можете использовать макрос. Следующий макрос создаст новый лист в конце вашей книги и скопирует в него содержимое со всех остальных листов.
Sub PrintOnePage() Dim wshTemp As Worksheet, wsh As Worksheet Dim rngArr() As Range, c As Range Dim i As Integer Dim j As Integer ReDim rngArr(1 To 1) For Each wsh In ActiveWorkbook.Worksheets i = i + 1 If i > 1 Then ' resize array ReDim Preserve rngArr(1 To i) End If On Error Resume Next Set c = wsh.Cells.SpecialCells(xlCellTypeLastCell) If Err = 0 Then On Error GoTo 0 'Prevent empty rows Do While Application.CountA(c.EntireRow) = 0 _ And c.EntireRow.Row > 1 Set c = c.Offset(-1, 0) Loop Set rngArr(i) = wsh.Range(wsh.Range("A1"), c) End If Next wsh 'Add temp.Worksheet Set wshTemp = Sheets.Add(after:=Worksheets(Worksheets.Count)) On Error Resume Next With wshTemp For i = 1 To UBound(rngArr) If i = 1 Then Set c = .Range("A1") Else Set c = _ ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell) Set c = c.Offset(2, 0).End(xlToLeft) 'Skip one row End If 'Copy-paste range (prevent empty range) If Application.CountA(rngArr(i)) > 0 Then rngArr(i).Copy c End If Next i End With On Error GoTo 0 Application.CutCopyMode = False ' prevent marquies With ActiveSheet.PageSetup 'Fit to 1 page .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With 'Preview New Sheet ActiveWindow.SelectedSheets.PrintPreview 'Print Desired Number of Copies i = InputBox("Print how many copies?", "ExcelTips", 1) If IsNumeric(i) Then If i > 0 Then ActiveSheet.PrintOut Copies:=i End If End If 'Delete temp.Worksheet? If MsgBox("Delete the temporary worksheet?", _ vbYesNo, "ExcelTips") = vbYes Then Application.DisplayAlerts = False wshTemp.Delete Application.DisplayAlerts = True End If End Sub
После того, как объединенный рабочий лист собран, макрос отображает рабочий лист с помощью предварительного просмотра. Когда вы закрываете предварительный просмотр печати, он спрашивает, сколько копий рабочего листа вы хотите распечатать. Если вы введете число больше нуля, будет напечатано столько копий. Наконец, макрос предлагает удалить объединенный рабочий лист непосредственно перед завершением.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (8315) применим к Microsoft Excel 2007, 2010 и 2013. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Printing_Multiple_Worksheets_on_a_Single_Page [Печать нескольких рабочих листов на одной странице]
.