Страницы: 1
RSS
VBA Печать набора файлов разного типа с выбором принтера
 
Доброго дня, уважаемые знатоки екселя. Обращаюсь за помощью или разъяснением т.к. мои навыки в 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 
 
Цитата
cuprum написал:
печать на определенный принтер
Как из VBA выбрать и установить принтер для Excel
Цитата
cuprum написал:
на печать выводятся только 2 файла ворд
а почему для Excel Вы не используете стандартный метод PrintOut?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
а почему для Excel Вы не используете стандартный метод PrintOut?
Последовательность и набор файлов разные, поэтому хотел применить универсальный вариант. В противном случае надо отлавливать в списке файлы ексель (не представляю как это сделать) и для них запускать отдельную процедуру печати. При этом соблюдая общую последовательность печати. Очень хотелсь избежать последующей ручной сортировки и раскладки документов в нужном порядке.
Цитата
Дмитрий(The_Prist) Щербаков написал:
Как из VBA выбрать и установить принтер для Excel
Спасибо, я внимательно ознакомился с этой статьей ранее. Там доходчиво рассказано как выбирать принтер для печати файлов ексель, в моем же случаю присутствуют и иные файлы, и... я не проверял, сработает ли это и с ними.
Изменено: cuprum - 02.11.2020 14:25:49
 
Извиняюсь что вопрос не совсем по теме, но он связан с решением по теме.

Цитата
cuprum написал:
надо отлавливать в списке файлы ексель
Каким образом определить что файл относится к епархии екселя, чтоб запустить по условию печать для екселевского файла?
 
Связан, но не по теме. Создайте отдельную тему
Страницы: 1
Наверх