Проблемы с установкой страницы

Надеемся, что это последняя проблема из серии вопросов "Печать индивидуального диапазона", поэтому я смиренно спрашиваю более знающих читателей, как скопировать объект 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
Другие вопросы по тегам