Такой вот глюк у меня (или у программы?)
Задача - распечатка кассового ордера в WORD'е. По сути дела, программе нужно только заполнить таблицу.
Делаю следующую процедуру:
- Код: Выделить всё
Private Sub cmdPrint_Click()
Dim WordApp As Word.Application 'экземпляр приложения
Dim DocWord As Word.Document 'экземпляр документа
Dim r As Range, tbPKO As Word.Table
Set WordApp = New Word.Application 'создаём экземпляр Word-a
Set DocWord = WordApp.Documents.Open(App.Path & "\Dokument\PKO.docx") 'открываем имеющийся документ
Set tbPKO = ActiveDocument.Tables(1)
'определяем видимость Word-a
WordApp.Visible = False
'*************************************************
'* здесь часть кода вырезал, чтоб не засорять. *
'* это заполнение таблиц, все работает правильно *
'*************************************************
DocWord.Activate 'активируем документ
'Печатаем документ
WordApp.PrintOut Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, _
Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
Collate:=True, Background:=True, PrintToFile:=False
'закрываем документ (без запроса на сохранение, и не сохраняя документ)
DocWord.Close wdDoNotSaveChanges
'закрываем Word (без запроса на сохранение)
WordApp.Quit True
'уничтожаем обект - документ
Set DocWord = Nothing
'уничтожаем обьект - Word
Set WordApp = Nothing
End Sub
Ничего нового, все стандартно.
Когда запускаю процедуру в первый раз все работает отлично, документ распечатывается так, как задумано и сделано.
А потом, при повторной распечатке начинается:
1. Выходит ошибка "462" - см. scr0 в приложении.
2. При попытке отладки на экране выделяется строка с активацией таблицы (см. scr1)
Понять, соответственно, ничего не могу... При нажатии Ctrl+Alt+del в ОС WinXp SP3 процесс WINWORD висит в памяти... (см. scr3) Когда нахально выгружаешь процесс из памяти, тогда снова все работает, как в первый раз, а при повторых попытках распечатать документ та же цикличность...
При 3-й попытке распечатать документ из программы выходит уже вот что - см. scr2
Это почему все так? И как с этим бороться? Намекните...