通过VBA设置默认打印机

时间:2019-11-19 08:17:46

标签: excel vba printing

我正在运行一个Excel宏,该宏在两台打印机之间切换,一台名为“ RecOffice_Pink”,另一台名为“ RecOffice_White”。

这是针对VBA问题的解决方法,该问题无法轻松指定要从中进行打印的纸盘。粉色打印机已禁用,只有一个纸盘失效,其中包含我们的粉色纸。

我正在使用

CreateObject(WScript.Network).SetDefaultPrinter "RecOffice_Pink"
and
CreateObject(WScript.Network).SetDefaultPrinter "RecOffice_White"

这在我们的Windows 7计算机上可以很好地工作,但是似乎在我们的任何Windows 10 PC上都无法工作。

没有抛出任何错误,没有创建任何消息,它似乎并没有在切换打印机。

我尝试将它们设置为我们网络上的共享打印机,并按计算机设置它们,这两种方法在Windows 7上都可以正常工作。

1 个答案:

答案 0 :(得分:0)

用法

InstallExecuteSequence

设置默认打印机

  SetDefaultPrinter "RecOffice_Pink"

在新工作簿中列出打印机和打印机属性

 Sub SetDefaultPrinter(PrinterName As String, Optional ComputerName As String = ".")
    Dim Printer As Object, Printers As Object, WMIService As Object
    Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & ComputerName & "\root\cimv2")
    Set Printers = WMIService.ExecQuery("Select * from Win32_Printer Where Name = '" & PrinterName & "'")

    For Each Printer In Printers
        Printer.SetDefaultPrinter
    Next

End Sub