Показать принтеры с определенным именем
У меня есть некоторый код, который перечисляет все активные принтеры (но делает это в 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
Я хочу, чтобы после заявления
For Each prtLoop In Application.Printers
часть кода выше, которая говорит, что если имя устройства *ABC, то оно будет всплывать только с "Printer ABC 1" вместо всех 3.
Я надеюсь это имеет смысл. Заранее спасибо за помощь. -Владимир
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
edit: Access не понравился оператор If then, потому что он был одной строкой, возникла ошибка с ошибкой "End If with Block If", я переместил MsgBox .DeviceName в его собственную строку, и он работает.