Непредвиденное поведение при использовании другого качества печати для листов в Excel

Симптомы

При печати нескольких листов в Microsoft Excel может быть создано несколько заданий печати. Это может привести к следующему поведению:

  • Если вы печатаете в файл, в файл печатаются только некоторые листы; Оставшиеся листы печатаются на принтере.

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

    В результате создается несколько выходных файлов. Каждый файл содержит часть полной распечатки.

  • Если вы используете макрос Microsoft Visual Basic для приложений для печати листов, макрос может завершиться ошибкой из-за нескольких запросов на имена выходных файлов.

  • При печати на сетевом принтере, который активно используется, задания печати могут быть смешаны с заданиями печати других пользователей.

Причина

Это происходит при использовании разных параметров качества печати для печати листов. При печати нескольких листов в Microsoft Excel каждое изменение параметра качества печати заставляет Microsoft Excel создать новое задание печати с помощью этого параметра качества печати.

Примечание.

Это не происходит при печати одних и того же листа в более ранних версиях Microsoft Excel.

Обходной путь

Чтобы обойти это поведение, убедитесь, что все печатаемые листы используют одинаковые параметры качества печати. Это можно сделать вручную или с помощью макроса Visual Basic, чтобы изменить качество печати.

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональность конкретной процедуры, но они не будут изменять эти примеры, чтобы предоставить дополнительные функциональные возможности или создать процедуры в соответствии с вашими конкретными требованиями. Следующий макрос Visual Basic гарантирует, что все листы в книге используют одинаковые параметры качества печати:

   Sub SetPrintQuality()

For Each xSheet In ActiveWorkbook.Sheets
           xSheet.PageSetup.PrintQuality = 600
       Next xSheet

End Sub

Этот макрос предполагает, что принтер может печатать со значением 600 точек на дюйм (точек на дюйм). Если принтер не может печатать с таким разрешением, измените значение в третьей строке макроса на соответствующее значение принтера (например, 150, 300, 600 или 1200).

После выполнения этого макроса все листы используют один и тот же параметр качества печати, и поведение больше не происходит.

Статус

Такое поведение является особенностью данного продукта.

Дополнительная информация

Следующие шаги демонстрируют поведение:

  1. Создайте новую книгу, содержащую три листа, например Лист1, Лист2 и Лист3.

  2. На каждом листе введите следующие значения:

    Лист1:

    A1: Лист1 — 300 точек на дюйм

    Лист 2:

    A1: Лист2 — 600 точек на дюйм

    Лист 3:

    A1: Лист3 — 300 точек на дюйм

  3. Щелкните Лист1. В меню Файл выберите пункт Параметры страницы, а затем откройте вкладку Страница . В списке Качество печати щелкните "300 точек на дюйм" и нажмите кнопку ОК.

  4. Повторите шаг 3 для листов Sheet2 и Sheet3, установив для параметра Качество печати значение "600 точек на дюйм" и "300 точек на дюйм" соответственно.

    Обратите внимание, что на каждом листе качество печати отличается от качества листа, предшествующего ему.

  5. Щелкните правой кнопкой мыши вкладку Листа1. В контекстном меню щелкните Выбрать все листы.

  6. В меню Файл выберите Печать. В разделе Принтер диалогового окна Печать выберите поле Печать в файл проверка. Нажмите кнопку ОК.

Может произойти следующее поведение:

  • Если используется драйвер принтера, подключенный к порту FILE:, диалоговое окно Печать в файл появляется три раза.
  • Если вы используете драйвер принтера, подключенный к LPT1:, LPT2:, или любому другому порту, подключенном к принтеру, диалоговое окно Печать в файл отображается только один раз для Лист1. Другие листы печатаются на принтере.
  • Если для печати листов используется макрос Visual Basic, диалоговое окно Печать в файл может отображаться несколько раз. Если вы используете метод SendKeys для отправки имени выходного файла в диалоговое окно Печать в файл, макрос может завершиться ошибкой, если диалоговое окно отображается несколько раз.

При изменении качества печати Листа 3 на 600 точек на дюйм создаются два задания печати: одно с 300 точек на дюйм (Лист1) и одно с 600 точек на дюйм (Лист2 и Лист3). При изменении качества печати Листа1 на 600 точек на дюйм создаются два задания печати: одно с разрешением 600 точек на дюйм (Лист1 и Лист2) и одно с разрешением 300 точек на дюйм (Лист3).