Есть ли способ определить, когда закончена фоновая печать Excel? - PullRequest
1 голос
/ 07 декабря 2009

Я использую COM в LotusScript (Lotus Notes), чтобы Excel печатал несколько листов в одной книге в PDFCreator, а затем объединял PDFCreator, а затем в один PDF. Проблема состоит в том, что вызов метода PrintOut в Excel, за которым сразу следует метод cCombineAll в PDFCreator, приводит к тому, что один или несколько листов исключаются из PDF. Похоже, что метод PrintOut в Excel возвращается до завершения печати. ​​

Установка Sleep в моем коде работает, но может быть ненадежной, так как время печати варьируется, поэтому ...
Можно ли вызвать свойство или метод Excel, чтобы определить, завершена ли печать?
Альтернативно, есть ли способ сделать блок метода PrintOut до завершения печати?
Мне не удалось найти ответ в справке Excel по VBA.

Ответы [ 2 ]

0 голосов
/ 22 января 2015

Я думаю, что другой метод - установить аргумент «Background» для «PrintOut» в false.

0 голосов
/ 08 декабря 2009

Этот пример кода из excelguru.ca предлагает вам использовать свойство cCountOfPrintJobs PDFCreator для отслеживания того, когда задание запускается и останавливается при печати. После завершения печати вы можете выполнять любые другие необходимые операции

Set pdfjob = New PDFCreator.clsPDFCreator

' ...missing out various initialisation steps

'Print the document to PDF
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"

'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
    DoEvents
Loop
pdfjob.cPrinterStop = False

'Wait until PDF creator is finished then release the objects
Do Until pdfjob.cCountOfPrintjobs = 0
    DoEvents
Loop
pdfjob.cClose
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...