我有一张超过一百张的工作簿。我已经能够修复列宽和行高,这样每个都是一个很好的可打印格式。我无法按顺序执行以下操作:
设置每张纸的打印区域[这是可变的,因为每张纸可能包含不同的行数] - 每张纸在第一行上具有相同的标题,标题从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
答案 0 :(得分:0)
你基本上已经掌握了一切。
如果每个工作表具有相同的列数并保存标题,则您不需要为每个工作表设置打印区域。只需指定适合一页上的所有列,这将使其在1页上打印所有列,并打印出打印所有行所需的许多页面。
所以你已经得到了.PrintTitleRows = "$1:$1"
标题
你已经获得了肖像,但正如所述需要成为风景
我认为fitToPagesWide = 1适合每页的所有列
出于安全考虑,您可以添加.FitToPagesTall = False
然后要打印的代码是ActiveWorkbook.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
我不知道collate是什么..试验。
基本上我获得此代码的方式是我去查看 - 宏 - 记录宏 然后我将工作簿中的页面布局设置为我想要的,然后我停止了宏并检查了代码,它有代码来设置我所做的所有设置。
另一种选择 - 没有真正的理由为此使用VBA。转到"打印标题"在页面布局选项卡上,要在每个页面上打印列标题,然后按CTRL + P进行打印,您可以设置所有其他打印设置,包括一页上的所有列,然后确保它设置为"打印整本工作簿" ..将完成相同的