2017-01-23 52 views
0

我有一些代碼列出了所有活動的打印機(但在msgboxes而不是列表中)。我沒有這個功能的問題。這是下面的代碼:顯示具有特定名稱的打印機

If Printers.Count > 0 Then 
    strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf 
    For Each prtLoop In Application.Printers 
     With prtLoop 
      MsgBox .DeviceName     
     End With 
    Next prtLoop 
    Else 
    MsgBox "No printers are installed." 
    End If 

雖然它做什麼,我基本上需要做的我什麼樣子,只彈出,如果匹配的部分是在代碼中設置打印機名稱的打印機。例如,如果我有3臺打印機:

Printer ABC 1 
Printer ZZ5 2 (copy) 
Printer 123 

我希望這是一個如果Then語句上面代碼的

For Each prtLoop In Application.Printers 

部分說大概後,如果設備名稱爲* ABC則只會彈出「打印機ABC 1」而不是全部3.

我希望這是有道理的。先謝謝您的幫助。 -Vladimir

回答

1

也許這就是你想要做的?
If Printers.Count > 0 Then strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf For Each prtLoop In Application.Printers With prtLoop If InStr(DeviceName, "ABC") Then MsgBox .DeviceName
End If
End With Next prtLoop Else MsgBox "No printers are installed." End If

編輯:訪問不喜歡。如果再聲明,因爲它是一條線,誤差要來了「結束如果不阻止如果」錯誤,讓我感動的MSGBOX .DeviceName到自己的路線,它作品。

+0

謝謝Matthias !!!這工作真棒。我做了一個小小的更改,因爲Access由於MsgBox .Devicename在同一行上,拋出一個錯誤(End if if without block if),之後我將它移動到它自己的行,沒有更多的錯誤,它工作正常。 – vladyerus