Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2018, 08:33   #1
ospts
Пользователь
 
Регистрация: 15.08.2016
Сообщений: 13
По умолчанию "Тихая" печать

Доброго всем времени суток.
В общем вопрос вот в чём. Я запускаю книгу Excel из под сторонней программы. При этом Excel на экран не выводится. Запускается макрос, который отправляет на печать форму с заполненными данными, то есть просто делает "тихую" печать. Но вот загвоздка в том, что печать идёт не на принтер по умолчанию, а на какой-то другой в системе. Раньше на другой ОС (Windows 7) всё отлично работало, а теперь, когда у меня новый компьютер с установленной на нём Windows 10, происходит это недоразумение.
Подскажите, может кто-то с сталкивался с подобной проблемой или может знает, как её победить.
Заранее спасибо.

Прилагаю текст макроса, хотя я что-то уверен, что дело не в нём, потому что, если открыть файл через Excel, и выполнить макрос, печать идёт на принтер по умолчанию.

Код:
Sub Макрос()
Worksheets("Данные").Range("I2:N2").Copy
Worksheets("Шаблон").Range("J2:O2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("Шаблон").Range("J53:O53").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

...

Worksheets("Данные").Range("I11:K11").Copy
Worksheets("Шаблон").Range("AM20:AO20").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("Шаблон").Range("AM71:AO71").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Шаблон").Select
Rows("1:101").Select
Selection.Copy
Sheets("Результат").Select
Rows("1:1").Select
Selection.Insert Shift:=xlDown

Sheets("Результат").PrintOut Copies:=1, Collate:=True

Application.DisplayAlerts = False
Application.Quit
End Sub
ospts вне форума Ответить с цитированием
Старый 14.08.2018, 11:15   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

варианты решения проблемы:

1) вручную в Excel задать «по умолчанию» другой принтер

2) макросом выбирать нужный принтер перед печатью:
https://excelvba.ru/code/printers
EducatedFool вне форума Ответить с цитированием
Старый 14.08.2018, 11:30   #3
ospts
Пользователь
 
Регистрация: 15.08.2016
Сообщений: 13
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
варианты решения проблемы:

1) вручную в Excel задать «по умолчанию» другой принтер

2) макросом выбирать нужный принтер перед печатью:
https://excelvba.ru/code/printers
1) Простите, а это как сделать?

2) Я так пока и сделал. Проверяю по пользователю и выбираю конкретный принтер. У нас у каждого сотрудника свой принтер. Но их около 50! Всех забивать долго. А если вдруг принтер поменяется, поломка или что-то ещё, за всеми не уследишь.
ospts вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 12:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23