我需要將我的列印機設定為“Microsoft Print to PDF”,但我怎么知道它將在哪個埠上?在另一臺機器上可能會有所不同。我需要它能夠在不知道“XXXX:”埠的情況下進行設定,如下所示:
Application.activeprinter = "Microsoft Print to PDF"
任何幫助,將不勝感激。謝謝
?ActivePrinter 'show active printer "XXXXXX on XXXX:"
uj5u.com熱心網友回復:
- 最簡單的方法:
嘗試在上述列印機上從 Excel 手動列印(任何內容)。
然后使用下一個代碼行:Debug.Print Application.ActivePrinter. 它將回傳Immediate Window列印機名稱字串(包括埠)以在將其設定為活動時使用。
- 下一個代碼回傳列印機及其埠,以列印機名稱作為引數呼叫:
Function FindPrinter(ByVal PrinterName As String) As String
Dim arrH, Pr, Printers, Printer As String
Dim RegObj As Object, RegValue As String
Const HKEY_CURRENT_USER = &H80000001
Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
RegObj.Enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Printers, arrH
For Each Pr In Printers
RegObj.getstringvalue HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Pr, RegValue
Printer = Pr & " on " & Split(RegValue, ",")(1)
If InStr(1, Printer, PrinterName, vbTextCompare) > 0 Then
FindPrinter = Printer
Exit Function
End If
Next
End Function
可以通過以下方式呼叫:
Sub testFindPrinter()
Debug.Print Application.ActivePrinter
Debug.Print FindPrinter("Microsoft Print to PDF")
End Sub
或者,通過以下方式簡單地設定活動列印機:
Application.ActivePrinter = FindPrinter("Microsoft Print to PDF")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/407572.html
標籤:
上一篇:一年中的最后一周歸因于下一年
