PageSetup问题

希望在“打印个人范围”系列问题的最后一个问题中,我特此谦虚地询问更多知识渊博的读者如何将PageSetup对象从一个页面复制到另一个页面。

既然你可以简单Dest.PageSetup = Source.PageSetup我不得不创build相同的function。 一个缩写forms如下:

 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是一个临时工作表),输出是相同的,如果我从来没有调用该函数。

这是海市蜃楼吗(它对你有用吗?),如果不是海市蜃楼,我需要做些什么来纠正?

我的版本的Excel(2003)不支持.AlignMarginsHeaderFooter属性,但我有缩放和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