Возможна печать только на принтер по умолчанию (Microsoft Excel)
В системе Боба Excel отказывается печатать на любом принтере, кроме того, который установлен в системе по умолчанию. Это происходит только в Excel, а не в Word или другом установленном приложении. Таким образом, для печати он должен временно изменить принтер по умолчанию на тот, который он хочет, распечатать, а затем не забыть установить принтер обратно после этого. Боб недоумевает, почему он не может выбрать другие принтеры.
У этой проблемы может быть несколько разных причин. Один подписчик сообщил, что у них была такая же проблема, но она возникла только после миграции их офиса на 64-разрядную версию Windows 7 и использования Windows PrintServer. В их случае они обнаружили, что это был скрытый атрибут в очередях принтеров, который вызвал проблему, и они могли решить эту проблему, только поговорив со службой поддержки Microsoft.
Другие сообщили о проблеме, возникающей при установке определенных надстроек в системе. (Одна, в частности, команда поиска Microsoft Office Labs, упоминалась несколько раз.) Отключение надстройки решило проблему.
Здесь есть хорошее обсуждение проблемы и различные исправления:
http://answers.microsoft.com/en-us/office/forum/office_2010-excel/excel-2010-only-prints-to-the-default-printer/5b6beddd-f85d-4fda-ab2b-56c750f2028c
Убедитесь, что он введен в вашем браузере как единый URL-адрес; это довольно долго.
Если ни одно из предложенных решений не работает в вашей ситуации, вы можете попробовать выполнить печать с помощью макросов. Зачем? Потому что вы можете легко изменить назначенный по умолчанию принтер в макросе, а затем изменить его обратно. Все это делается с помощью свойства ActivePrinter. Вы можете определить имя текущего принтера по умолчанию и назначить его переменной, сменить принтер, затем выполнить печать и, наконец, вернуть принтер обратно:
Dim sDefault As String sDefault = Application.ActivePrinter 'save current default printer Application.ActivePrinter = "XYZ SuperPrinter" ' do your printing Application.ActivePrinter = sDefault 'restore default
Единственное, что вам нужно сделать, это убедиться, что вы заменили «XYZ SuperPrinter» фактическим именем принтера, который вы хотите использовать. Вы можете узнать имя принтера, сделав его значением по умолчанию (в Windows), а затем в окне VBE Immediate, напечатав имя принтера:
? Application.ActivePrinter
Отметьте имя, обращая внимание на интервалы и заглавные буквы, и это имя вы можете использовать в макросе печати.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12497) применим к Microsoft Excel 2007, 2010, 2013 и 2016.