我有一个Excel VBA宏,它尝试以彩色打印,但只以黑白打印。
我尝试了两种方法,但是失败了。
方法1:ActiveSheet.PageSetup.BlackAndWhite = False。该代码似乎在我的环境中不起作用。我也不允许添加其他彩色打印机队列。
方法2:Application.Dialogs(xlDialogPrinterSetup).Show。我可以使用此代码在我的环境中显示打印机列表,但不知道如何选择正确的打印机并选择颜色。
sparse: true
想通过我提供的两种方法中的任何一种进行彩色打印。
答案 0 :(得分:1)
我怀疑这是打印机设置的问题,而不是您的代码的问题。检查打印机的实际设置方式。如果您使用的是Win 10,则还有另一个问题-您需要从系统中禁用自动管理打印作业,它会一直恢复到给定应用程序的最后一个设置,而忽略您的手动设置。
ActiveSheet.PageSetup.BlackAndWhite = False
所做的是一个Excel设置(您将其以彩色发送到打印机)。 IMHO,问题是在实际的打印机的设置 - 它被设置为B&W存在,这意味着的转换发生在打印机即可。您至少不能轻易地从VBA更改它。
您可以做的(但可能需要管理员访问)是在系统中设置打印机的第二(第三)份副本,然后在其中进行彩色打印,然后在打印前选择“其他”打印机。
>我在Word中使用此方法-为信封设置一个“打印机”,为双面打印设置一个“打印机”,并且原始打印机具有公司设置的正常设置。每台打印机实际上都是同一台打印机。
然后解决方案是代替ActivePrinter:="\\printer\printer1"
将ActivePrinter
更改为一种彩色打印,并在打印输出后再次返回。
编辑:
重新阅读- "\\printer\printer1"
是正确的吗?您可以在系统中查看打印机的连接方式,或者在向彩色打印机发送内容并查看时直接记录宏。可能只是您需要将Application.activeprinter=
设置为另一个,例如Application.activeprinter="\\printer\printer2"
。