2017-01-23 2 views
0

활성 프린터를 모두 나열하는 코드가 있습니다 (그러나 목록 대신 msgbox에 표시됩니다). 나는 그 기능에 아무런 문제가 없다. 여기에 아래의 코드는 다음과 같습니다특정 이름의 프린터 표시

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 

를 문은 장치 이름은 그 다음 * ABC입니다 위의 코드의

For Each prtLoop In Application.Printers 

부분을 말한다 아마 후에 경우 "Printer 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이 같은 행에 있기 때문에 오류가 발생했습니다 (블록없이 끝나는 경우). 오류가 발생하지 않고 자체 행으로 이동 한 후 정상적으로 작동합니다. – vladyerus