【发布时间】:2014-02-21 15:09:17
【问题描述】:
我有一本超过一百张的工作簿。我已经能够修复列宽和行高,使其成为每个的良好可打印格式。我很难订购代码来执行以下操作:
为每张纸设置打印区域 [这是可变的,因为每张纸可能包含不同数量的行] - 每张纸的第一行都有相同的标题,并且标题从 A1:N1 开始。所有数据都从第 2 行开始,根据每张纸向下多少行。
如果需要打印多页,我希望标题行成为每页的标题
将格式设置为横向
我希望缩放以适应一页中的所有列。如果它必须打印到多页,那将是如果有可能的行。
打印所有工作表
我知道下面的代码有 xlPortrait 作为它应该是横向的方向。我的问题是我无法进行初始部分。我一直在尝试分段进行,但似乎无法开始。任何朝着正确方向的帮助都会很棒。
Sub SetupPrint()
Dim wkst As Worksheet
For Each wkst In ActiveWorkbook.Sheets
With wkst.PageSetup.PrintArea
.Range(("A1"), Selection.SpecialCells(xlLastCell)).Select
End With
With wkst.PageSetup
.PrintTitleRows = "$1:$1"
.PrintTitleColumns = ""
.Orientation = xlPortrait
.FitToPagesWide = 1
End With
Next
End Sub
【问题讨论】:
-
我想自动化这个过程。我意识到我可以设置横向,将所有列放在一页上,并通过选择所有工作表选项卡来打印所有工作表。我无法为每一页应用设置标题的第一行。我最终记录了我所做的并运行宏以将其应用于每个页面。然后我通过选择所有选项卡打印了所有工作表。
-
我找到了我的解决方案,但我一直在尝试了解 VBA 可以做些什么来消除将来尽可能多的手动工作。有时成本效益不存在,但它可能在未来的某个时候有用。