我设置了一个宏来打印一个大数据集。它不能全部放在一张纸上(宽度方向,它可以根据需要在高度方向延伸)。它在 11x17 (Macro1) 上打印 2/3 的数据,在 8.5x11 (Macro2) 上打印剩余的 1/3。为了让它适合,我正在使用以下内容:
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
现在,这已经足够好了。不幸的是,当它按比例缩小时,两张纸的比例并不相同,因此您不能将 8.5x11 放在 11x17 旁边并使行匹配。无论如何将缩放从一个宏传递到另一个?如果您设置.FitToPagesWide
,则.Zoom
仅返回 false。还应注意,数据集可能会添加额外的 2 到 4 列。因此,如果我为工作表设置特定的缩放比例,我觉得它并非在所有情况下都有效。理想情况下,我想只适合 11x17 并让 8.5x11 具有相同的比例。
编辑我使用了接受的答案并为我的宏删除了一些不必要的项目。最终代码如下:
.Zoom = 60
With ActiveSheet
Do While .VPageBreaks.Count > 2
.PageSetup.Zoom = .PageSetup.Zoom - 1
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.View = xlNormalView
Loop
End With
编辑 2当前代码迭代包括几个调试步骤。
With ActiveSheet
i = 1
.PageSetup.Zoom = 80
Do While .VPageBreaks.Count > 2
.PageSetup.Zoom = .PageSetup.Zoom - 1
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.View = xlNormalView
Application.StatusBar = "Zooming Iteration #" & i & " :: Zoom at " & .PageSetup.Zoom
i = i + 1
Loop
Application.StatusBar = False
End With