Книги могут содержать все виды данных. Если у вас есть книга, содержащая несколько листов, каждый из которых содержит лишь небольшой объем данных, вы можете задаться вопросом, есть ли способ распечатать несколько листов на одном листе бумаги.
Есть несколько способов решения этой проблемы. Первый – просто распечатать несколько страниц на листе, используя возможности драйвера вашего принтера. Например, у меня есть более старый HP LaserJet, и драйвер принтера позволяет мне указывать количество страниц для печати на листе бумаги. Если я хотел напечатать три или четыре одностраничных листа на одном листе бумаги, все, что мне нужно сделать, это выполнить следующие действия:
- Выберите «Печать» в меню «Файл». Excel отображает диалоговое окно «Печать».
- В области «Что печатать» диалогового окна выберите параметр «Вся книга».
- Нажмите кнопку «Свойства». Excel отображает диалоговое окно “Свойства” для принтера с выбранной вкладкой “Макет”.
- Установите для элемента управления “Страниц на листе” значение 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 'изменить размер массива ReDim Preserve rngArr (1 To i) Конец, если при ошибке Возобновить Далее Установить c = wsh.Cells.SpecialCells (xlCellTypeLastCell) Если Err = 0 То при ошибке GoTo 0 'Запретить пустые строки 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. Рабочий лист Установить wshTemp = Sheets.Add (after: = Worksheets (Worksheets.Count)) При ошибке Возобновить Далее с помощью wshTemp Для i = 1 В UBound (rngArr) Если i = 1 Затем Установить c = .Range ("A1") Остальное Установить c = _ ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell) Set c = c.Offset (2, 0) .End (xlToLeft) 'Пропустить одну строку End If' Копировать-вставить диапазон (предотвратить пустой диапазон) If Application.CountA (rngArr ( i))> 0 Then rngArr (i) .Copy c End If Next i End With On Error GoTo 0 Application.CutCopyMode = False 'предотвращение маркировки с помощью ActiveSheet.PageSetup' Подогнать к 1 странице .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 Завершить с 'Предварительный просмотр нового листа ActiveWindow.SelectedSheets.PrintPreview' Распечатать желаемое количество копий i = InputBox («Напечатать, сколько копий?», «ExcelTips», 1) Если IsNumeric (i), то Если i> 0, то ActiveSheet. Распечатка копий: = i End If End If 'Delete temp.Worksheet? Если MsgBox («Удалить временный лист?», _ VbYesNo, «ExcelTips») = vbYes, то Application.DisplayAlerts = False wshTemp.Delete Application.DisplayAlerts = True End IfEnd Sub
После объединенного рабочего листа собран вместе, макрос отображает рабочий лист с помощью предварительного просмотра. Когда вы закрываете предварительный просмотр, он спрашивает, сколько копий рабочего листа вы хотите распечатать. Если вы введете число больше нуля, будет напечатано столько копий. Наконец, макрос предлагает удалить объединенный рабочий лист непосредственно перед завершением.