У меня есть небольшой проект в Excel с макросами. Эта программа автоматически создаёт отчёты, но необходимо их при нажатии кнопки автоматически печатать. Всё дело в том, что отчёты каждый раз разные (разное количество столбцов и строк). Всё, что я пытался сделать свелось к тому, что я прописал при форматировании максимально возможной кол-во столбцов и строк, но, естественно, при распечатке получаются отчёты с очень мелким шрифтом и большой незаполненной областью (если в отчёте маленькое кол-во сторк и столбцов).
Поэтому, если кто знает, подскажите пожалуйста код, который последовательно: 1. Делает лист альбомным 2. Автоматически подбирает ширину страницы ("лишние" строки могут "вылазить на другой лст", главное чтобы попали только заполненные непустые столбцы) и форматирует её
В результате после выполнения макроса отчёт должен быть на 1 странице по ширине.
Заранее спасибо!
Добрый день.
Прошу помочь разобраться с такой проблемой.
У меня есть небольшой проект в Excel с макросами. Эта программа автоматически создаёт отчёты, но необходимо их при нажатии кнопки автоматически печатать. Всё дело в том, что отчёты каждый раз разные (разное количество столбцов и строк). Всё, что я пытался сделать свелось к тому, что я прописал при форматировании максимально возможной кол-во столбцов и строк, но, естественно, при распечатке получаются отчёты с очень мелким шрифтом и большой незаполненной областью (если в отчёте маленькое кол-во сторк и столбцов).
Поэтому, если кто знает, подскажите пожалуйста код, который последовательно: 1. Делает лист альбомным 2. Автоматически подбирает ширину страницы ("лишние" строки могут "вылазить на другой лст", главное чтобы попали только заполненные непустые столбцы) и форматирует её
В результате после выполнения макроса отчёт должен быть на 1 странице по ширине.
With ActiveSheet.PageSetup .Orientation = xlLandscape .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 999 End With
[/vba]и затем [vba]
Код
ActiveSheet.PrintOut ' и нужные параметры
[/vba] Кстати, ещё можете задать повторение печати заголовка на каждой странице: [vba]
Код
With ActiveSheet.PageSetup .PrintTitleRows = "$1:$1" End With
[/vba]
И ещё - все эти "Параметры страницы" сохраняются, так что их можно и ручками предварительно установить один раз, а не форматировать каждый раз перед печатью
[vba]
Код
With ActiveSheet.PageSetup .Orientation = xlLandscape .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 999 End With
[/vba]и затем [vba]
Код
ActiveSheet.PrintOut ' и нужные параметры
[/vba] Кстати, ещё можете задать повторение печати заголовка на каждой странице: [vba]
Код
With ActiveSheet.PageSetup .PrintTitleRows = "$1:$1" End With
[/vba]
И ещё - все эти "Параметры страницы" сохраняются, так что их можно и ручками предварительно установить один раз, а не форматировать каждый раз перед печатью AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Воскресенье, 26.05.2013, 16:57