Выбор принтера в Excel VBA

При попытке распечатки на конкретном принтере в excel появляется сообщение об ошибке, когда сервер меняет свое приглашение. При попытке исправить это я использовал функцию «on error resume next», но это просто уродливо (и не работает все время).

Это моя текущая формула

Application.ScreenUpdating = False ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne01:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne02:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne03:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne04:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne05:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne06:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne07:" On Error Resume Next ActivePrinter = "\\w8vvmprint01\Moecombi04 op Ne08:" On Error Resume Next 

Что я могу сделать, чтобы исправить это?

 #If VBA7 Then Private Declare PtrSafe Function GetProfileString Lib "kernel32.dll" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long #Else Private Declare Function GetProfileString Lib "kernel32.dll" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long #End If 
 Public Function GetPrinterPort(ByVal PrinterName As String) As String Dim t As Long Do GetPrinterPort = String$(Len(GetPrinterPort) + 256, 0) t = GetProfileString("PrinterPorts", PrinterName, "", GetPrinterPort, Len(GetPrinterPort)) Loop Until t < Len(GetPrinterPort) - 1 If t <= 0 Then Err.Raise 5, , "Cannot get printer port for " & PrinterName GetPrinterPort = Split(Left$(GetPrinterPort, t), ",")(1) End Function 

Применение:

 port = GetPrinterPort("\\w8vvmprint01\Moecombi04") 

Затем используйте port для создания полного имени принтера. Возможно, вы захотите рассмотреть проблемы локализации .

  • Печать определенных вкладок
  • Как экспортировать datagridview в excel с помощью vb.net?
  • Получить Python для печати в pdf / изображение выбранных ячеек в MS Excel
  • Будут писать пробелы, но не последний символ (VBA Excel)
  • Макрос для печати двух разных форматов бумаги при одинаковом увеличении
  • Код Excel vba для печати
  • Пытаться печатать только там, где есть текст
  • Печать книги Excel с использованием python
  • Разница между событиями печати и печати в excel vba
  • Печать файла HTML с помощью VBA
  • Объединить диапазоны печати из нескольких рабочих листов VBA EXCEL
  • Interesting Posts

    Получите пользовательское значение ввода Excel ComboBox VBA

    System.Runtime.InteropServices.COMException (0x800706BA): сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)

    Формула Excel для применения столбца штрафа к ранжированию

    VSTO Excel – Как создать диапазон с несколькими областями

    У меня есть столбец текстовых и текстовых чисел. Если число, конвертировать. Если текст, возвращаемый текст

    Excel: поиск нескольких строк, затем возвращаемое значение

    Определите похожие имена, например: «AAA BBB CCC» и «BBB AAA CCC» – это те же люди

    Счетная строка на столбец при загрузке с помощью codeigniter

    Ошибка «Bad magic number for file header» при использовании openpyxl

    Формат 2-значного значения до десятичной и 2-значной после decmal, Excel Interop

    Excel VBA: не может суммировать () над диапазоном ()

    Исключить исключение ячейки: om.ctc.wstx.sr.ValidatingStreamReader не может быть добавлено в com.ctc.wstx.sr.ValidatingStreamReader

    VBA: преобразовать текст в число

    VBA 2007 Filedialog Добавление фильтров

    Используйте таблицу стилей для преобразования xml и заполнения первого листа excel

    Давайте будем гением компьютера.