Excel. Печать данных с нескольких листов

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Приветствую!

Есть 3 листа: List1, List2, List3.

На каждом из листов есть диапазон с данными A1:C20.
Необходимо распечатать на принтере последовательно эти диапазоны с List1, List2, List3 одним последовательным списком с сохранением форматов, оформления и т.д. каждого из диапазонов листов.

Операцию печати придется повторять неоднократно при изменении данных на листах,
и поэтому хотелось бы автоматизировать.

Как это можно сделать?
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

На ум приходит только один вариант.

Макросом создаём новый лист, копируем на него последовательно нужные диапазоны (вместе с форматированием, разумеется), если надо, ещё как-нибудь обрабатываем данные, отправляем этот лист на печать, удаляем лист.

Всего несколько строк кода... в чём сложность?

Код: Выделить всё

Sub Main()
    Application.ScreenUpdating = False: Application.DisplayAlerts = False
    With ThisWorkbook.Worksheets.Add
        For i = 1 To 3: ThisWorkbook.Worksheets("Лист" & i).Range("a1:c20").Copy .Cells(20 * (i - 1) + 1, 1): Next
        .PrintOut: .Delete
    End With
    Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

EducatedFool,
спасибо, вроде этого кода и буду сочинять
Ответить