我注意到模板文件Me
中 VBA 代码中关键字的行为会有所不同,具体取决于文档是否具有 ActiveX 控件。
- 带有 ActiveX 控件的文档:
Me
引用从模板创建的新文件。 - 没有 ActiveX 控件
Me
的文档:引用模板而不是新文件。
为了演示这种奇怪的行为,我制作了两个示例文件:
这两个文件是相同的,它们之间的唯一区别是一个有按钮,另一个没有。这两个文件的 VBA 代码如下:
Private Sub Document_New()
Selection.TypeText "Me keyword is referencing """ & Me.Name & """."
End Sub
如果您从这些模板创建一个新文件,您会发现结果不同:
WithActiveX.dotm 内容为
Me 关键字引用“Document1”。<-- 上面代码生成的字符串
而没有ActiveX.dotm 内容是
Me 关键字引用“WithoutActiveX.dotm”。<-- 上面代码生成的字符串
我进行了几次测试,得出的结论是不一致的根源是 ActiveX 控件的存在(没有与控件关联的代码:它仅存在于文档中)。
这是设计的东西还是只是一个错误?
编辑 2017-06-13:此处描述的错误似乎已部分修复,但仍可重现。现在,只有在使用这些模板之一(如空白文档)创建新文档之前打开了 Word 的实例时才会发生这种情况。