如果您使用宏来打印工作表,您已经知道该宏可以指定将输出发送到的实际打印机。

如果还要指定要在该打印机上使用的特定纸盒怎么办?不幸的是,这变得有些粘滞。

问题是,当您在“页面设置”对话框中单击“选项”按钮以设置要使用的纸盘时,所看到的内容完全在打印机驱动程序的控制下,而不是在Excel的控制下。

这对您意味着什么?这意味着您不能在Excel宏中使用任何命令来指定打印机托盘。但是,您可以尝试一些解决方法。第一种解决方法是简单地在Windows中定义不同的打印机定义,每个定义适用于特定的打印机托盘。请遵循以下一般步骤:

。确定要在打印机上使用多少个纸盘。

。为要使用的每个纸盒定义一个新的打印机。例如,如果要使用三个不同的纸盒,则应定义三台打印机,每台打印机的名称代表纸盒。

。右键单击打印机定义,然后更改打印机的属性,以便将其打印到所需的纸盒中。

。对其他每个打印机定义重复步骤3,确保为每个打印机指定不同的纸盘。

此时,您已经设置了多个打印机定义,并且每个定义都将打印到同一台打印机上的不同纸盒中。在Excel中,您可以在宏中指定所需的打印机,以便将打印输出转到所需的打印机定义,并进而转到所需的纸盒。当然,此解决方案的唯一缺点是,它需要进行大量的设置工作。如果您在一个有50位用户的办公室中工作,这意味着您需要确保所有50位用户都如上所述定义了每台打印机。

另一个解决方法涉及在宏中使用SendKeys语句。您可以在Excel随附的VBA联机帮助中找到有关SendKeys的信息,但其基本作用是在键盘缓冲区中填充一系列按键,就像由用户键入的一样。因此,从理论上讲,您可以设置宏以模拟打开页面设置对话框,单击选项并选择其他打印机托盘后要执行的按键操作。

但是,SendKeys存在潜在的问题,这是一个很大的问题。这是不可靠的,因为无法确保击键实际上就在您想要的地方。在多线程操作系统(例如Windows)上,某些其他进程可能会干预并破坏命令。此外,如果SendKeys在您的计算机上可用,则除非在其他人的计算机上具有相同版本的Excel,相同的打印机和相同的打印机驱动程序,否则它可能在其他人的计算机上不起作用。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(7010)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: