我对 Excel VBA 中的打印机对象和打印机对象有疑问。在使用 Pinter 和 Printers 对象之前,是否需要在 Tool->Reference 中安装任何参考库?
我运行下面的代码,并在第
For Each prt In Printers
行收到错误“需要对象”。打印机对象是空的,prt
-对象什么也没有。
Sub ListPrinters()
Dim prt As Printer
For Each prt In Printers
Debug.Print Prt.deviceName
Next prt
End Sub
我尝试在“工具”->“参考”菜单中添加参考库,但找不到任何有关打印机或打印机的参考。
Application.Printers
不存在于 Excel 或 Word 中,它仅存在于 Access 中(未检查 Powerpoint 或任何其他 MS 应用程序)。
替代方法是使用 Windows Scripting Host 的方法
EnumPrinterConnections
:
Sub ListPrinters2()
Dim i As Long
With CreateObject("WScript.Network")
For i = 1 To .EnumPrinterConnections.Count Step 2
Debug.Print .EnumPrinterConnections(i)
Next
End With
End Sub
使用
Step 2
时,循环可能看起来有点奇怪。原因是每台打印机在列表中都有 2 个条目,第一个获取端口,第二个获取打印机名称。