Я написал приложение VBScript для открытия документов Word и Excel, поиска и замены блоков текста и различных разделов, извлекая новый текст из простого текстового файла. Я нарочно избегал любых ошибок, прежде всего потому, что не мог понять это в то время (и скрипт все равно работал надежно). Теперь, спустя месяцы, на моей локальной машине я получаю необъяснимые сообщения об ошибках, связанных с изменением Normal.dot, и окно сообщения, спрашивающее, что я хочу с этим сделать (что требует еще трех диалогов, чтобы окончательно ответить). Конечно, это убивает мою способность запускать скрипт и просто уходить, так как это приводит к сбою скрипта. В настоящее время, когда это происходит, я должен открыть диспетчер задач, найти Winword.exe (из которого GUI не запущен) и уничтожить его, а затем снова запустить мой сценарий.
Какой разумный способ отловить ошибку и успешно завершить работу Word (или Excel). На основании этого вопроса я пытаюсь это:
Set objDoc = objWord.Documents.Open(curDir1 + "\docs\template_spec.dot")
If Err.Number <> 0 Then
WScript.Echo "Error in Word Open:" & Err.Description
objWord.Quit
Else
Set objSelection = objWord.Selection
'Do replacement activities'
ReplaceText(objSelection)
objDoc.SaveAs(curDir1 + "\docs\mynewdocument.doc")
objWord.Quit
End If
Set objShell = Nothing
Set objWord = Nothing
Set objExcel = Nothing
Конечно, как бы судьбе это ни было, я не могу воспроизвести проблему, поэтому она работает как обычно. Это решение кажется разумным? И дополнительный вопрос: Как, черт возьми, я заставляю Word перестать жаловаться на Normal.dot (или заставить скрипт справиться с этим)? Словно Word оставляет себя открытым в фоновом режиме после того, как в некоторых случаях я закрыл графический интерфейс.