Код VBA для печати спереди и сзади из 2 разных листов Excel - PullRequest
0 голосов
/ 28 июня 2018

У меня есть 2 листа Excel, а именно «Для печати» и «Лист 4». Я хочу автоматически печатать листы спереди назад, используя VBA. Это мой текущий код, но он требует действий пользователя после печати 1-й страницы.

Sub Rectangle4_Click()

  Dim PageFrom As Integer
  Dim PageTo As Integer
  Dim xAnswer As Integer

   PageFrom = Sheets("INPUT").Range("J2").Value
   PageTo = Sheets("INPUT").Range("L2").Value

   Sheets("For Print").PrintOut From:=PageFrom, To:=PageTo, Copies:=1, 
   Collate:=True

   '--------------------------------------TO PRINT PAGE 2--------------------

   xAnswer = MsgBox("Print Page 2?", vbYesNo + vbQuestion, "Empty Sheet")

   If xAnswer = vbYes Then
   Sheets("Sheet4").PrintOut From:=1, To:=1, Copies:=PageTo, Collate:=True
   End If
End Sub

Пожалуйста, помогите: (

Мне нужно напечатать это без настройки свойств принтера. Мой босс сказал мне иметь код, который контролирует API принтера. Наш принтер FujiXerox.

Большое спасибо.

1 Ответ

0 голосов
/ 05 июля 2018

Я пытался сделать то, что вы сказали, но это печатается на отдельных страницах. я бы хотел распечатайте их только на 1 странице, двусторонняя печать.

Прямо говоря, двусторонняя печать не является вариантом (или будущим) Excel (или листа Excel). Это особенность принтера. Таким образом, в зависимости от фьючерса на принтер и настроек принтера , вы можете или не сможете печатать листы на обеих сторонах листа бумаги.

Количество печатаемых страниц зависит от PageSetup листа. Например, если вы настроили печать листов на 1 странице:

With ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PageSetup 
    .Zoom = False 
    .FitToPagesTall = 1 
    .FitToPagesWide = 1 
End With

и затем вы используете метод PrintOut , вы увидите 2 страницы. Если дуплекс доступен и правильно настроен, вы напечатаете 1 страницу на обеих сторонах.

Как уже упоминалось PEH , для возможности пропустить оба листа в рамках одного метода необходимо использовать:

ThisWorkbook.Worksheets(Array("For Print", "Sheet4")).PrintOut

Пожалуйста, перейдите по ссылкам, которые я указал в моем ответе для получения дополнительной информации.

[EDIT]
Вот набор ссылок, которые могут помочь вам решить вашу проблему:
API принтера Excel VBA, настройка цвета и дуплекс
Управление принтером в макросе
Работа с несколькими принтерами

...