Прежде всего, извините за публикацию этого сообщения, я знаю, что оно, вероятно, продублировано из этого сообщения. , я пытался опубликовать это как редактирование, но оно было отклонено, и я не могу комментировать, потому что у меня нет репутации 50, а также это неправильный ответ. Надеюсь, это поможет лучше понять проблему и привлечь к ней больше внимания.
Я работаю в компании, которая использует VBA, и мы использовали Documents.Open
в течение долгого времени, и до сих пор это никогда не доставляло мне никаких проблем. Проблема кажется довольно случайной, так как она есть не у многих клиентов, но теперь она становится более последовательной, в основном с Office 365. Может быть, это связано с актуализацией?
Всякий раз, когда я делаю Documents.Open
, запрошенный документ будет открываться, но все, что будет после этого, не будет выполнено. Это может быть так же просто, как:
Sub Test()
Documents.Open(filename)
MsgBox "Hi"
End Sub
И окно сообщения никогда не будет показано. Я также пробовал это, так как нашел что-то похожее на других форумах:
Sub Test()
Dim doc as Document
set doc = Documents.Open(filename)
MsgBox "Hi"
End Sub
Я даже попробовал старый открытый WordBasic.FileOpen()
. Ничего не помогает, код перестает выполняться после открытия документа. В отчаянной попытке выполнить эту работу я создал COM-dll, который открывает документ с окном сообщения в dll и в VBA после того, как dll выполнила свою часть. DLL работает правильно, но как только она возвращается к VBA, код останавливается и не показывает окно сообщения.
Я провел некоторое исследование, и оно не имеет ничего общего с известной ошибкой клавиши Shift, так как я могу запустить пример кода, нажав кнопку воспроизведения, поэтому при открытии документа никакие клавиши не нажимаются.
Затем я попытался работать с событием AutoOpen, как показано в этот другой пост, и путем отладки Я понял, что событие PseudoAutoOpen
никогда не вызывалось на компьютерах с проблемой.
Также убедитесь, что все находится в доверенных документах и что макросы включены, как сказано в этом другом сообщении: Word 2013 VBA - открытие документа прерывает макрос
ОБНОВЛЕНИЕ
Во время отладки я случайно обнаружил, что если я дважды запускаю пример макроса, то во второй раз (с открытым целевым документом) он работает так, как предполагалось.
Я начинаю сходить с ума по этому поводу.