2017-09-05 113 views
0

在我们的办公室,我们正在使用包含宏的模板。我们即将升级到Office 2016,但不幸的是,宏不像以前那样完全工作。如何在VBA(Word 2016)中的Documents.add后继续执行代码?

当前的实现是从定制对话中打开模板,并在模板中调用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())还是从打开文档的父宏。

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

回答

0

您应该能够使用应用程序的Document_New事件来检测添加的文档,可以是它触发(假定您已经使用Document的Document_New事件),也可以通过在第一个动作中计算打开的文档来人为生成事件在文档添加后采取。

相关问题