Подождите, пока документ полностью откроется, прежде чем запускать макрос - PullRequest
0 голосов
/ 26 апреля 2019

Можно ли заставить Word подождать, пока документ полностью не откроется и все поля не будут заполнены, перед запуском макроса? Я пытался использовать Document_Open(), но, к сожалению, это слишком рано.

Я пытаюсь отменить связь всех полей с помощью макроса ниже. Это работает с документом, который уже открыт. Ошибка из-за отсутствия документа при использовании Document_Open()

Sub SelectUnlink()
    ActiveDocument.Range(0, 0).Select
    Selection.WholeStory
    Selection.Range.Fields.Unlink
    Selection.End = Selection.Start
End Sub

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

Мне кажется, что всякий раз, когда вы сталкиваетесь с этой ошибкой, она не вызывается автоматическим запуском макроса Document_Open, поскольку вызов SelectUnlink не может быть выполнен до того, как откроется открытый документ. Это может произойти, если вы запускаете макрос Document_Open или SelectUnlink вручную, однако, когда ни один документ не открыт. Тем не менее, в вашем макросе Document_Open вы можете заменить вызов SelectUnlink следующим:

ActiveDocument.Fields.Update
ActiveDocument.Fields.Unlink
0 голосов
/ 26 апреля 2019

Просто поставьте Обработка ошибок.

Sub SelectUnlink()
    ON ERROR GOTO FINISH
    ActiveDocument.Range(0, 0).Select
    Selection.WholeStory
    Selection.Range.Fields.Unlink
    Selection.End = Selection.Start
    FINISH:

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...