我有问题。我有一个大的XL工作簿,它生成两个输出'页面',我用它来进行日常规划。一个输出页面有三个月的日历,待办事项列表和每日计划。第二个输出页面有一个非常方便的方式来跟踪每日笔记和设计草图。不幸的是,工作簿有四个工作表,两个用于管理内容的工作表和两个用于格式化输出的工作表。哦,作为参考,工作表开始作为Vertex42文档..我已经对工作簿进行了大量更新,特别是添加了第2页。
绝对关键的是输出纸张最终会放在一张纸的两面。
普通XL打印控件允许三种基本选项:您可以打印1)选择区域,或2)单张纸张或3)打印整个工作簿。我知道我可以单独使用宏来打印输出页,但只使用双面打印机上的纸张的一面。如何在工作簿中打印出四个工作表中的两个,以使页面最终位于一张纸的两面?
My current macro:
Sub PrintMultipleDays()
Dim theStartDate As Date
Dim theEndDate As Date
Dim i, d As Integer
Dim daysToPrint As Integer
theStartDate = Range("theDate").Value
theEndDate = Range("endDate").Value
daysToPrint = theEndDate - theStartDate
Dim msg As String
msg = "Print " & daysToPrint + 1 & " Days?" & Chr(10) & theStartDate & " To " & theEndDate
If (MsgBox(msg, vbYesNo, "Print Multiple Days?") = vbYes) Then
' continue
Else
Exit Sub
End If
For i = 0 To daysToPrint Step 1
Range("theDate").Value = theStartDate + i
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Page2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Page1").Select
Next i
'Reset
Range("theDate").Value = theStartDate
End Sub
注意:通常我喜欢一次打印大约四页(即8页输出页,四页纸...)我一直在使用pdf打印机工具并附加输出文件以生成单个页面(8页面长)pdf文件,但该工具不再有效。我需要找到一个更好的解决方案。关于这个宏的mods的任何想法??
或者我只是放弃整个XL的东西,在html5画布或SVG或JavaScriptPDF库中执行此操作并在线进行以便所有人分享善意? (这要花几个小时?呃。)我会说,jsPDF似乎是一个非常棒的工具,但重现一些这样的功能将会有很多工作。
答案 0 :(得分:1)
基本上,您可以在按住CTRL的同时单击鼠标来选择两张或更多张(如果纸张是连续的,则可以移动)。然后,您可以在一个打印作业中一起打印所有这些。这也可以在VBA中使用Array作为Sheets集合的参数:
Sheets(Array("sheet1", "sheet2"). PrintOut Copies:=1, Collate:=True