Проблемы с установкой страницы
Надеемся, что это последняя проблема из серии вопросов "Печать индивидуального диапазона", поэтому я смиренно спрашиваю более знающих читателей, как скопировать объект PageSetup с одной страницы на другую.
Так как вы можете просто Dest.PageSetup = Source.PageSetup
Мне пришлось создать функцию, которая делает то же самое. Сокращенная форма ниже:
Public Sub CopyPageSetup(ByVal Source As Worksheet, ByRef Dest As Worksheet)
With Source.PageSetup
Call SetParam(.AlignMarginsHeaderFooter, Dest.PageSetup.AlignMarginsHeaderFooter)
' etc
Call SetParam(.Zoom, Dest.PageSetup.Zoom)
End With
End Sub
И SetParam это просто:
Public Sub SetParam(ByVal Source As Variant, ByRef Dest As Variant)
If Dest <> Source Then Dest = Source
End Sub
Однако это не копирует настройки страницы - сразу после вызова этой функции я вызываю tmp.PrintPreview
(где tmp - временная рабочая таблица), и результат такой же, как если бы я никогда не вызывал функцию.
Это мираж (это работает для вас?), И если это не мираж, что мне нужно сделать, чтобы исправить это?
1 ответ
Моя версия Excel (2003) не поддерживает свойство.AlignMarginsHeaderFooter, но я получил свойства zoom и BottomMargin для копирования на новую страницу.
Public Sub CopyPageSetup(ByVal Source As Worksheet, ByRef Dest As Worksheet)
With Dest.PageSetup
.Zoom = Source.PageSetup.Zoom
.BottomMargin = Source.PageSetup.BottomMargin
End With
End Sub