在“打印单个范围”系列问题的最后一个问题中,我在此谦虚地询问知识渊博的读者如何将 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 是一个临时工作表),输出与我从未调用过该函数一样。
这是海市蜃楼吗(它对你有用吗?)如果它不是海市蜃楼,我需要做什么来纠正这个问题?