Изменить колонтитулы перед печатью
Модератор: Naeel Maqsudov
Помогите пожалуйста с кодом. Задача простая, надо изменить (или добавить) колонтитулы листа перед печатью. Ниже приведенный код не работает. В чем касяк?
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "$A$3:$DK$201"
With Sheet.PageSetup
.LeftHeader = "Дата отчёта: &D"
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.118110236220472)
.FooterMargin = Application.InchesToPoints(0.118110236220472)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 68
.PrintErrors = xlPrintErrorsDisplayed
End With
ThisWorkbook.Save
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "$A$3:$DK$201"
With Sheet.PageSetup
.LeftHeader = "Дата отчёта: &D"
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.118110236220472)
.FooterMargin = Application.InchesToPoints(0.118110236220472)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 68
.PrintErrors = xlPrintErrorsDisplayed
End With
ThisWorkbook.Save
End Sub
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
А что не работает то ?
Только что проверил. Помещаем в ЭтаКнига код
Жмём Файл->Предварительный просмотр и видим сформированный клонтитул....
Только что проверил. Помещаем в ЭтаКнига код
Код: Выделить всё
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
.LeftHeader = "Проверка"
.CenterHeader = "Страница &P из &N"
.RightHeader = "Клонтитула"
End With
End Sub
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Спасибо Aent, вы как всегда правы! Код заработал после того как я убрал все лишние для меня строки. Оставил токо .LeftHeader = "Дата отчёта: &D"
Почему то если вставить весь код то он не работает, может работает слишком долго. Но главное теперь код работает, еще раз огромное спасибо!
Почему то если вставить весь код то он не работает, может работает слишком долго. Но главное теперь код работает, еще раз огромное спасибо!
Возможно ли сделать колонтитулы такого типа
С уважением...
С уважением...
- Вложения
-
- ПМООС исходник.zip
- (28.11 КБ) 25 скачиваний
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
seergy, а зачем велосипед изобретать ?
Все это есть готовое.
**
файл 2 раза перепакован, не получалось по другому загрузить.
Все это есть готовое.
**
файл 2 раза перепакован, не получалось по другому загрузить.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
Все это есть готовое в Worde. А нужно в Excele колонтитулом либо горизонтально, либо вертикально, либо A4, А3 - я сказал зам. директору, что это не возможно для меня на данный момент - уровень не тот и на форуме врядли помогут.
Всё жепопросил уточнить на форуме, срочно надо ....
с уважением...
Да Виктор как сделать грамотно данные шаблоны для макроса копирования из excel в ворд. делаю .dot., тогда проблема решена....
Всё жепопросил уточнить на форуме, срочно надо ....
с уважением...
Да Виктор как сделать грамотно данные шаблоны для макроса копирования из excel в ворд. делаю .dot., тогда проблема решена....
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
seergy, Вы пишете
и прикрепляете DOC_овский файл. И после того, как Вам ответили видим вот такоеВозможно ли сделать колонтитулы такого типа
так может сначала определиться - что нужно...Все это есть готовое в Worde. А нужно в Excele
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
Хорошо возьму за правило
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Mint86,
.
Причём особенно тормозит Application.InchesToPoints из за взаимодействия с драйвером принтера.
В тех случаях когда мне надо установить значение в пойнтах и макрос не переносим я как правило вычисляю значение предварительно и использую константы.
Кстати, для измения параметров страницы иногда бывает удобно воспользоваться XLM функциями. Это значительно быстрее чем PageSetup.
Да. PageSetup вещь не быстраяможет работает слишком долго

Причём особенно тормозит Application.InchesToPoints из за взаимодействия с драйвером принтера.
В тех случаях когда мне надо установить значение в пойнтах и макрос не переносим я как правило вычисляю значение предварительно и использую константы.
Кстати, для измения параметров страницы иногда бывает удобно воспользоваться XLM функциями. Это значительно быстрее чем PageSetup.
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Пояснения...
- Вложения
-
- Колонтитулы.zip
- (49.76 КБ) 22 скачивания