如何选择特定打印机并选择彩色打印



我有一个尝试以彩色打印的Excel VBA宏,但它只能以黑白打印。

我尝试了两种方法,但失败了。

方法1:ActiveSheet.PageSetup.BlackAndWhite = false。这段代码似乎在我的环境中不起作用。我也不允许添加另一个彩色打印机队列。

方法 2:Application.Dialogs(xlDialogPrinterSetup)。显示。我可以使用此代码调出环境中的打印机列表,但不知道如何选择正确的打印机并选择颜色。

ActiveSheet.PageSetup.BlackAndWhite = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="\printerprinter1", Collate:=True, _
IgnorePrintAreas:=False
Sheets("REPORT").Select

想通过扩展我提供的 2 种方法中的任何一种来打印彩色。

我怀疑这是打印机设置的问题,而不是您的代码。检查打印机的实际设置方式。如果您使用的是 Win 10,则还有一个额外的问题 - 您需要禁用从系统自动管理打印作业,它会一直恢复到给定应用程序的最后一个设置并忽略您的手动设置。

ActiveSheet.PageSetup.BlackAndWhite = False所做的是 Excel 设置(您以彩色将其发送到打印机)。恕我直言,问题出在实际的打印机设置中 - 它在那里设置为 B&W,这意味着转换发生在打印机中。您无法从 VBA 更改此设置,至少不容易。

您可以做的(但可能需要管理员访问权限)是在系统中设置打印机的第二个(第三个)副本,将其设置为彩色打印,然后在打印之前选择此"其他"打印机。

我正在为Word使用此方法-为信封设置一个"打印机",为双面打印设置一个"打印机",并且原始打印机具有公司设置的正常设置。它的每一个在物理上都是同一台打印机。

然后,解决方案不是ActivePrinter:="\printerprinter1"ActivePrinter更改为彩色打印,然后在打印输出后再次打印。

编辑:

再读一遍——"\printerprinter1"是正确的吗?您可以在系统中查看打印机的连接方式,或者当您将某些内容发送到彩色打印机并查看那里时,只需记录一个宏。可能是,您只需要将Application.activeprinter=设置为另一个,例如Application.activeprinter="\printerprinter2".

最新更新