Я искал в Интернете, но не могу найти точное решение для этого ... Мне нужно иметь возможность установить цвет и дуплекс для печати из моего кода VBA.
Мое намерениеиспользовать кнопку пользовательской формы VBA для форматирования, а затем распечатать таблицу из моей книги.Мой сокращенный код:
Application.PrintCommunication = False
With ws.PageSetup
.PrintArea = first & ":" & last
.PrintTitleRows = "$1:$1"
.LeftHeader = "&9&D &T"
.CenterHeader = "&A"
.RightHeader = "&9Page &P of &N"
.Orientation = xlLandscape
.PaperSize = xlPaper11x17
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.25)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
End With
Application.PrintCommunication = True
ws.PrintOut Preview:=True, ActivePrinter:="BODHPM750"
Это форматирует страницу и хорошо открывает окно предварительного просмотра, но по умолчанию используется черно-белая односторонняя печать (в соответствии с настройками принтера в офисе), если только я не вручнуюизменил его с момента открытия рабочей книги.Эти параметры связаны с принтером, а не с книгой, поэтому я не могу изменить их с помощью ws.PageSetup или в окне предварительного просмотра.
РЕДАКТИРОВАТЬ: Я также понял, что определение ActivePrinterне работаетПредварительный просмотр печати открывается для принтера по умолчанию, установленного на моем компьютере, который отличается от того, который я пытаюсь вызвать в моей команде ws.PrintOut.
Есть ли способ для меня установить этопечатать в цвете и дуплекс внутри этой кнопки нажмите?Я нашел информацию об использовании объекта «Принтер» в Access и других программах Office, но, похоже, его нет для Excel.
Для справки - я использую VBA в Excel 2016, а принтер -попытаться использовать HP Color LaserJet M750 PCL 6 на офисном сервере, если это актуально.
ОБНОВЛЕНИЕ: Устранена проблема с цветом.