每当我打开文档时,VBA代码都会停止

时间:2018-08-02 11:13:23

标签: vba ms-word word-vba

首先,很抱歉发布此帖子,我知道它可能与this帖子重复,我尝试将其发布为编辑内容,但遭到拒绝,因为我的声誉不高,所以我无法发表评论,这也不是正确的答案。希望这有助于更好地理解问题并引起更多关注。

我在一家使用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完成后,在dll和VBA中都有一个消息框。该dll可以正常运行,但是一旦回到VBA,该代码就会停止并且不显示消息框。

我已经进行了一些研究,并且与已知的shift-key bug没有任何关系,因为我可以通过按播放按钮来运行示例代码,因此在打开文档时不会按任何键。

然后,我尝试使用this other post中所示的AutoOpen事件,并且通过调试,我意识到在有问题的计算机中从未调用过PseudoAutoOpen事件。

还要确保所有内容都位于受信任文档的位置,并且已启用宏,如另一篇文章所述: Word 2013 VBA - opening document aborts macro

更新

我在调试时偶然发现,如果我两次运行示例宏,第二次(打开目标文档)将按预期运行。

我开始对此失去理智。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我从微软论坛上的MVP那里得到了报告,他们在服务器端更改了Word启动过程中Word下载的配置文件。所做的更改使得禁用了导致(我的documents.add)问题的(新)有问题的代码。

我刚刚与有问题的客户端进行了测试,我们是否将Office版本降级为以前的版本,现在我可以说的问题似乎已经解决。

可能是如果您再次更新Office版本,它也可以使用。如果问题仍然是第一次出现,则可能需要关闭单词稍等片刻然后重新开始。

也许它现在也已解决了document.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