Я написал приложение VBScript для открытия документов Word и Excel, поиска и замены блоков текста и различных разделов, извлекая новый текст из обычного текстового файла. Я намеренно избегал проверки ошибок, в первую очередь потому, что в то время я не мог этого понять (и сценарий в любом случае работал надежно). Спустя несколько месяцев на моем локальном компьютере я по необъяснимым причинам получаю сообщения об ошибках об изменении Normal.dot и окно сообщения с вопросом, что я хочу с этим сделать (для окончательного ответа требуется еще три диалоговых окна). Конечно, это убивает мою способность запустить сценарий и просто уйти, поскольку это приводит к сбою сценария. В настоящее время, когда это происходит, мне нужно открыть диспетчер задач, найти Winword.exe (графический интерфейс которого не работает) и убить его, а затем повторно запустить мой скрипт.
Какой разумный способ обнаружить ошибку и успешно закрыть 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 остается открытым в фоновом режиме после того, как я закрыл графический интерфейс в некоторых случаях.