如何在VBA(Word 2016)中的Documents.add之后继续执行代码?

时间:2017-09-05 10:00:10

标签: vba ms-word word-vba

在我们的办公室,我们目前正在使用包含宏的模板。我们即将升级到Office 2016,但遗憾的是宏还没有像过去那样完全正常工作。

当前的实现是从自定义对话框打开模板,并在模板中调用Document_New()。这似乎不再起作用:Document_New()仅在从文件资源管理器打开模板时调用,而不是在另一个宏中由Documents.Add()打开时调用。

或者,我发现很多解决方案调用Documents.Add,然后在该新文档上调用其他函数。例如

Set doc = Documents.Add(Template:=strSkeuze, NewTemplate:=True)
Call MsgBox(doc.Name)

在Word 2016中,这似乎不起作用。 MsgBox未被调用,当我在调试模式中逐步执行代码时,代码在Documents.Add()之后停止执行。

但是,我找不到任何已知的更改,我正在寻找一种解决方法,仍然可以从模板中执行代码,例如使用Document_New()或从打开文档的父宏。

有人能告诉我这是否还有可能以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您应该能够使用应用程序的Document_New事件检测添加的文档,无论是它触发(假设您一直在使用Document的Document_New事件),还是通过人工生成事件计算在添加文件后采取的第一个行动的开放文件。