Vba 如何在全双工打印机上打印多张Excel(XL)工作表?(双面打印输出)

Vba 如何在全双工打印机上打印多张Excel(XL)工作表?(双面打印输出),vba,excel,Vba,Excel,我有个问题。我有一个很大的XL工作簿,可以生成两个输出“页面”,用于日常计划。一个输出页面包含三个月的日历、待办事项列表和每日日程安排。第二个输出页面有一个非常方便的方法来记录每日笔记和设计草图。不幸的是,工作簿有四个工作表,两个用于管理内容,两个用于格式化输出。哦,作为参考,工作表以Vertex42文档开始。。我对工作簿做了很多更新,特别是增加了第2页 输出页最终位于一张纸的两面是绝对关键的 正常的XL打印控件允许三个基本选项:您可以打印1)选择区域,或2)单个工作表,或3)打印整个工作簿。我

我有个问题。我有一个很大的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个输出页,4张纸…),我一直在使用pdf打印机工具并附加输出文件以生成单个(8页长)pdf文件,但该工具不再工作。我需要找到更好的解决办法。关于这个宏的mods有什么想法吗

或者我只是放弃了整个XL,在html5画布或SVG或JavaScriptPDF库中这样做,然后在线这样做,让所有人都能分享美好?(这要花多少小时?啊。)我会说,jsPDF似乎是一个非常棒的工具,但要复制一些功能需要大量的工作


基本上,您可以在按住CTRL键的同时单击鼠标选择两张或多张图纸(如果图纸连续,则按住shift键)。然后,您可以在一个打印作业中将所有内容一起打印。这在VBA中也可以使用数组作为图纸集合的参数:

Sheets(Array("sheet1", "sheet2"). PrintOut Copies:=1, Collate:=True

回答很好。是的,这基本上实现了目标。如果我有多个双面页面,我仍然无法打印到单个PDF文件,但这并不重要。我可以用物理打印机打印,这就是我所需要的。谢谢。我已经为任何想下载一个好的每日计划页面的人提供了整个电子表格。。。