VBA代码在我打开文档时停止运行

3
首先很抱歉发这篇文章,我知道这可能是从this帖子复制过来的,我试图将其作为编辑发布,但被拒绝了,而且我没有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正常运行,但一旦回到VBA,代码就停止了,它不会显示消息框。
我进行了一些研究,与已知的shift键错误无关,因为我可以通过按播放按钮运行示例代码,因此在打开文档时没有按下任何键。
然后我尝试使用AutoOpen事件,如此其他帖子所示,并通过调试发现在存在问题的计算机上从未调用PseudoAutoOpen事件。
我已经确保所有内容都在受信任的文档位置,并启用了宏,就像这篇帖子所说的那样:Word 2013 VBA - opening document aborts macro 更新 我在调试时意外发现,如果我运行示例宏两次,第二次(目标文档已打开)它会按预期工作。
我开始为此感到苦恼。

就我个人而言,我无法重现此问题。我的Office 365版本为1808 Build 10711.20012。 - Cindy Meister
@CindyMeister 我的Office 365版本是1807 Build 10325.20082。我注意到你的版本更高,但当我尝试更新时,它显示没有可用的更新。 - Carles
@CindyMeister 我已经禁用了所有安全措施,以确保没有任何东西会妨碍。现在我正在扫描新的系统更新,只是为了确保。我会更新帖子的结果,如果什么都不起作用,我们将不得不寻求微软支持。无论如何,谢谢! - Carles
3
@CindyMeister - 我可以在那个版本中重现这个问题,并已向产品团队报告了这个问题。 - Rich Michaels
感谢 @RichMichaels。很棘手的问题... - Cindy Meister
显示剩余2条评论
2个回答

1

我曾考虑过降级,但我希望有一个更长久的解决方案,但既然我们无法对此做任何事情,那么这就足够了。谢谢。 - Carles
我们的环境中也有同样的问题,当我们禁用宏执行时(除了已签名的宏),问题才会发生。这个问题经过这么多月后可能还存在吗?我在微软网站上阅读了论坛帖子,但没有最新的更新。我发布这篇回答是为了鼓励人们提供其他解决方案,而不是降级Office版本或进行某些更新。抱歉跨贴。 - robob

0

我已经从微软论坛的MVP那里得到了报告,他们对一个配置文件进行了服务器端的更改,该文件在Word启动期间进行下载。这一更改使得(新的)引起(我的documents.add)问题的有问题的代码被禁用。

我刚刚与一个出现了问题的客户进行了测试,并将办公室版本降级到了以前的版本,现在据我所知,问题似乎已经解决了。

如果您再次更新您的office版本,它也可能适用于您。如果问题仍然发生,第一次需要关闭Word等待一段时间,然后重新启动。

也许这个(服务器端的)更改现在也修复了文档打开问题。

更多信息请参见原始讨论,链接如下: 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


我尝试使用几个客户端进行更新,但这并没有解决问题。 - Carles
你在升级后又启动了 Word 吗?它可能在更新后第一次仍然会失败。如果对于 documents.open 没有解决方案,我强烈建议您在 Microsoft 论坛上报告此问题,因为它看起来确实是相同的问题。 - Willems Davy
是的,我已经重新启动了很多次,并且在执行之间稍微等待了一会儿。没有任何不同。我们已经联系了微软,正在等待回复。 - Carles
似乎其他人在微软讨论区也报告了同样的问题,其中一位MVP不得不再次降级(不确定为什么,我问了为什么)。他们再次报告了这些问题。 - Willems Davy
我们在将近两周前报告了这个问题,被告知他们会查看一下,并且如果在那段时间内问题没有解决,我们应该等待至少2到3个月再次报告问题。也许我们应该在MS论坛上创建一个Documents.Open的专门讨论,因为documents.add已经解决了? - Carles
1
你也可以在微软论坛上参与讨论。Rich是MVP,他不得不再次降级的原因是他遇到了documents.open问题和documents.add问题。他还说,documents.add问题的修复在重新启动后不会保持,而且在重新启动Word后第一次使用时,documents.add问题会重新出现,直到重新启动Word。他再次联系了微软人员解决这个问题,所以我认为他们此时也意识到了documents.open问题。 - Willems Davy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接