【问题标题】:PageSetup problems页面设置问题
【发布时间】:2009-07-06 13:05:02
【问题描述】:

对于“打印一个单独的范围”系列问题中的最后一个问题,我在此谦虚地询问知识渊博的读者如何将 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 是一个临时工作表)并且输出与我从未调用过该函数一样。

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

【问题讨论】:

  • 您是否尝试过录制宏,同时手动将页面设置更改为您需要的配置?

标签: excel vba printing page-setup


【解决方案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

【讨论】:

  • 它似乎在这里工作,但问题是页面不相等。似乎有些东西决定了无法以编程方式复制的页面布局。
猜你喜欢
  • 2014-12-07
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多