Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何选择特定打印机和选择彩色打印_Excel_Vba - Fatal编程技术网

Excel 如何选择特定打印机和选择彩色打印

Excel 如何选择特定打印机和选择彩色打印,excel,vba,Excel,Vba,我有一个Excel VBA宏,它尝试以彩色打印,但它只以黑白打印 我试过两种方法,但都失败了 方法1:ActiveSheet.PageSetup.BlackAndWhite=False。这段代码在我的环境中似乎不起作用。我也不允许添加另一个彩色打印机队列 方法2:Application.Dialogs(xlDialogPrinterSetup.Show)。我可以使用此代码在我的环境中显示打印机列表,但不知道如何选择正确的打印机和颜色 ActiveSheet.PageSetup.BlackAndW

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

我试过两种方法,但都失败了

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

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

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

希望通过扩展我提供的两种方法之一以彩色打印。

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

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

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

我使用这种方法进行文字设置,一台“打印机”用于信封,一台“打印机”用于双面打印,原始打印机具有公司设置的正常设置。每台打印机都是同一台打印机

然后,解决方案是将
ActivePrinter:=“\\printer\printer1”
更改为以彩色打印的
ActivePrinter
,并在打印输出后重新打印

编辑:


再次阅读-
“\\printer\printer1”
正确的吗?您可以在系统中查看打印机的连接方式,也可以在向彩色打印机发送内容并查看时简单地记录宏。您可能只需要将
Application.activeprinter=
设置为另一个,例如
Application.activeprinter=“\\printer\printer2”

您如何录制一个宏来执行您描述的操作?嗨,Majka,谢谢您的回复。很遗憾,我无法更改或将打印队列/打印机设置添加到现有环境中,因为我们的管理员禁止这样做。您是否知道是否有任何方法可以使用方法2选择打印机和颜色,因为这可能是我唯一可用的选项…@Korosuke您可以手动从Excel打印到彩色打印机吗?也就是说,对于同一工作簿,手动选择彩色打印机,并在那里以彩色打印表格,而不进入详细的打印机设置?如果是,请打开“打印”对话框,设置彩色打印机。接近。在VB编辑器中打开即时窗口,并在其中写入
?application.activeprinter
。这将为您提供正确的字符串“FromColor”。然后,在代码中,按如下方式插入:
application.activeprinter=“FromColor”
在打印输出之前,在打印输出之后插入
application.activeprinter=“\\printer\printer1”