Доброго дня, уважаемые знатоки екселя. Обращаюсь за помощью или разъяснением т.к. мои навыки в VBA начальные. В продолжение темы Не сквозная нумерация озаботился написанием макроса печатающего набор файлов разного типа, в нужном мне порядке, для формирования комплекта документации. Обычно в комплектах бывают файлы ворд, ексель и пдф, количество и состав файлов разный. Первым макросом формируется список файлов на листе, за основу взял код из примера https://www.planetaexcel.ru/techniques/12/45/. Затем получаю список принтеров доступных компьютеру, хотелось бы иметь возможность направления на печать на определенный принтер, а не только на тот, что по умолчанию, но пока не понимаю как это сделать не для еселевских файлов. Дело еще не завершено, но столкнулся вот с таким моментом: во время отладки кода по F8 весь код печати нормально отрабатывается, все файлы из списка распечатываются. В отладочном примере был использован список из 3-х файлов, один ексель и два - ворд. При полноценном же запуске этого же кода, на печать выводятся только 2 файла ворд. Что я делаю не так? Подозреваю что это связано с процедурой печати, но почему при отладке всё срабатывает?
Код
Sub ListPrnt()
Dim lprnt(), t As Single
'Dim vTimeout
Const vTimeout = 3
k = [C4].Value ' кол-во экземпляров
Pt = [C8] ' Принтер
With Selection
ReDim lprnt(1 To Selection.Count)
For x = 1 To k ' кол-во экземпляров
For i = 1 To Selection.Count
' lprnt(i) = Selection(i) ' это я хотел через массив оформить, передумал
CreateObject("Shell.Application").ShellExecute _
Selection(i), "", "", "Print", 0&
t = Timer + vTimeout
While Timer < t
DoEvents
Wend
Next
Next
End With
End Sub
Последовательность и набор файлов разные, поэтому хотел применить универсальный вариант. В противном случае надо отлавливать в списке файлы ексель (не представляю как это сделать) и для них запускать отдельную процедуру печати. При этом соблюдая общую последовательность печати. Очень хотелсь избежать последующей ручной сортировки и раскладки документов в нужном порядке.
Спасибо, я внимательно ознакомился с этой статьей ранее. Там доходчиво рассказано как выбирать принтер для печати файлов ексель, в моем же случаю присутствуют и иные файлы, и... я не проверял, сработает ли это и с ними.