Excel VBA打印到特定的打印机托盘

在Excel(2007)VBA中,如何将工作表打印到特定的打印机托盘? 这只会打印到打印机上的默认纸盘:

ws.PrintOut ActivePrinter:="\\print_server\printer_name" 

微软为这个问题提供了一个难以解决的问题。 使用SendKeys从打印设置对话框中手动select正确的纸盒。

另一个select可能是在Windows中设置其他打印机,其中每台打印机实际上链接到同一台打印机上的不同纸盒。 您可以在VBA中select适当的纸盘。 这篇文章有详细信息。

或者,如果您的打印机在要打印的纸盒中碰巧有不同尺寸的纸张,可以设置(例如):

 ws.PageSetup.PaperSize = xlPaperLegal 

打印机将自动select正确的纸盒。 我只是在我的打印机上试过这个,并强制在手动纸盘上打印纸张,因为我实际上没有合法尺寸的纸盘。