【问题标题】:How to select a specific printer and select color printing如何选择特定的打印机并选择彩色打印
【发布时间】:2019-02-01 04:24:48
【问题描述】:

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

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

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

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

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

希望通过扩展我提供的两种方法中的任何一种来进行彩色打印。

【问题讨论】:

  • 你录制一个宏做你描述的动作怎么样?

标签: excel vba


【解决方案1】:

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

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

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

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

然后解决方案是代替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" 在它之后。
猜你喜欢
  • 2013-11-08
  • 1970-01-01
  • 2021-05-02
  • 2017-03-10
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
  • 2023-03-27
相关资源
最近更新 更多