在excel宏中更改打印机属性

Tim*_*ies 12 printing excel vba excel-vba

有没有什么办法可以在Excel宏/ Excel VBA中将打印机属性更改为彩色而不是黑白?我想从宏中打印颜色,但每次退出excel时,它都会将颜色设置为黑白.我希望宏可以在每次运行时将颜色设置为颜色.这是我用来打印的代码:

Workbooks("Book1.xlsm").Worksheets("Sheet3").PrintOut from:=1, To:=(i / 2) - 0.5
Run Code Online (Sandbox Code Playgroud)

这将打印由宏影响的每个页面,但它以黑白方式显示.我已经尝试了这个,但它没有改变任何东西:

Workbooks("Book1.xlsm").Worksheets("Sheet3").PageSetup.BlackAndWhite = False
Run Code Online (Sandbox Code Playgroud)

如果在vba中无法做到这一点,我也可以使用API​​解决方案.

小智 6

而不是使用:

Workbooks("Book1.xlsm").Worksheets("Sheet3").PrintOut from:=1, To:=(i / 2) - 0.5
Run Code Online (Sandbox Code Playgroud)

你可以使用:

Workbooks("Book1.xlsm").Worksheets("Sheet3").PrintOut
Run Code Online (Sandbox Code Playgroud)

你可以跳过:

Workbooks("Book1.xlsm").Worksheets("DoNotDelete").PageSetup.BlackAndWhite = False
Run Code Online (Sandbox Code Playgroud)

因为它只更改工作表设置,而不是更改打印设置.

但就彩色打印而言,最好只在同一台打印机中创建一个快捷方式两次control panel,并将其中一个设置为默认颜色,另一个设置为默认黑色和白色.这样,您可以根据您选择的打印机指定颜色或黑/白.

  • 这是如何回答颜色/黑白问题的? (2认同)
  • @brettdj 他的最后一段是如何解决该问题的建议(使用两台打印机指向同一台具有不同设置的机器)。也可以通过编程方式创建和删除这些打印机,但您需要为此具有管理员权限。 (2认同)