Arhn - архитектура программирования

Код VBA останавливается всякий раз, когда я открываю документ

Прежде всего, извините за публикацию этого сообщения, я знаю, что оно, вероятно, продублировано из этого сообщения. , я пытался опубликовать это как редактирование, но оно было отклонено, и я не могу комментировать, потому что у меня нет репутации 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 - открытие документа прерывает макрос

ОБНОВЛЕНИЕ

Во время отладки я случайно обнаружил, что если я дважды запускаю пример макроса, то во второй раз (с открытым целевым документом) он работает так, как предполагалось.

Я начинаю сходить с ума по этому поводу.

02.08.2018

  • FWIW я не могу воспроизвести. Запуск Office 365 версии 1808, сборка 10711.20012. 02.08.2018
  • @CindyMeister У меня есть Office 365 версии 1807, сборка 10325.20082. Замечаю, что ваша версия выше, но при попытке обновить пишет, что обновлений нет. 02.08.2018
  • Я нахожусь на ускоренном пути к инсайдерской информации, а это означает, что я обычно получаю некоторые бета-версии до того, как они будут выпущены. Это не то, что компания обязательно хочет иметь :-) Еще одна вещь, на которую вы можете обратить внимание, - может ли расположение файла (сетевое, локальное и т. д.) иметь какое-либо влияние. Но, откровенно говоря, это может быть то, что вам нужно отправить в службу поддержки Microsoft. 02.08.2018
  • @CindyMeister Я отключил все меры безопасности, чтобы ничего не мешало. Прямо сейчас я сканирую новые системные обновления, чтобы быть уверенным. Я обновлю пост с результатами, и если ничего не сработает, нам придется обратиться в службу поддержки Microsoft. Все равно спасибо! 02.08.2018
  • @CindyMeister - я могу воспроизвести эту проблему в этой сборке и сообщить об этом команде разработчиков. 02.08.2018
  • Спасибо @RichMichaels. Противный... 02.08.2018
  • У нас такая же проблема в нашей среде, и это происходит только тогда, когда мы отключаем выполнение макросов (кроме подписанных). Возможно ли, что эта проблема все еще присутствует после стольких месяцев? Я прочитал сообщение форума на сайте Microsoft, и там нет последних обновлений. Я публикую это как ответ, чтобы побудить людей предлагать альтернативные решения в отношении понижения версии Office или некоторого обновления. Извините за кросс-пост 31.05.2019

Ответы:


1

Похоже, проблема связана с обновлением 1807 Build 10325.20082.

Восстановление до более ранней сборки (9330.2087) устранило проблему для меня:

https://support.microsoft.com/en-us/help/2770432/how-to-revert-to-an-earlier-version-of-office-2013-or-office-2016-clic

03.08.2018
  • Я думал о понижении, но я надеялся на более постоянное решение, но, поскольку мы ничего не можем с этим поделать, этого будет достаточно. Спасибо 03.08.2018
  • У нас такая же проблема в нашей среде, и это происходит только тогда, когда мы отключаем выполнение макросов (кроме подписанных). Возможно ли, что эта проблема все еще присутствует после стольких месяцев? Я прочитал сообщение форума на сайте Microsoft, и там нет последних обновлений. Я публикую это как ответ, чтобы побудить людей предлагать альтернативные решения в отношении понижения версии Office или некоторого обновления. Извините за кросс-пост 31.05.2019

  • 2

    Я получил отчет от MVP на форумах Microsoft о том, что они внесли изменение на стороне сервера в файл конфигурации, который загружается словом во время запуска слова. Это изменение делает так, что (новый) проблемный код, вызывающий проблему (my documents.add), отключается.

    Я только что протестировал его с клиентом, у которого была проблема, и мы понизили версию офиса до предыдущей сборки, и теперь проблема, насколько я могу судить, кажется решенной.

    Возможно, если вы снова обновите свою офисную версию, она также будет работать с вами. Возможно, если проблема все еще возникает в первый раз, вам нужно немного подождать и начать заново.

    Возможно, теперь также исправлена ​​проблема с документами.open с этим (серверным) изменением.

    Дополнительная информация в исходном обсуждении здесь https://answers.microsoft.com/en-us/msoffice/forum/msoffice_word-msoffice_custom-mso_2016/1807-build-1032520082-is-causing-vba-problems-with/538e8c3c-355e-47a7-9e3f-58cf04902c10

    13.08.2018
  • Я попытался обновить с помощью нескольких клиентов, и это не решает проблему. 14.08.2018
  • вы запускали Word второй раз после обновления? он все еще может выйти из строя в первый раз после обновления. Если кажется, что это не решает проблему для document.open, я настоятельно рекомендую сообщить об этом на форумах Microsoft об этой проблеме, и это действительно выглядело так, как если бы это была та же проблема. 14.08.2018
  • да, я перезапускал его несколько раз и немного ждал между выполнениями. Ничего другого. Мы уже связались с Microsoft и ждем ответа. 14.08.2018
  • Кажется, другие люди также сообщают о той же проблеме в обсуждении ms, и одному из mvp пришлось снова понизить версию (не знаю, почему я спросил, почему). Они снова сообщили о проблеме(ах) 16.08.2018
  • Мы сообщили о проблеме почти две недели назад, нам сказали, что они рассмотрят ее и что нам следует подождать не менее 2-3 месяцев, чтобы снова сообщить о проблеме, если она не будет решена за этот период. Может быть, нам следует создать дискуссию, посвященную Documents.Open, на форуме ms, так как document.add решен? 16.08.2018
  • Вы также можете участвовать в обсуждении на форумах MS. Рич, MVP пришлось снова понизить рейтинг, потому что у него также была проблема с document.open наряду с проблемой document.add. Он также сказал, что решение проблемы с документами. добавить не удается после перезагрузки, а при первом использовании слова после перезагрузки проблема с документами. добавить возвращается до перезапуска слова. Он снова связался с людьми ms по поводу этой проблемы, поэтому я думаю, что они также знают о проблеме с document.open в это время. 17.08.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..