请解释以下内容:
-
Word.Application和Word.Global有什么区别?
-
在 VBA Word 宏中,对全局对象(如应用程序和选择)的引用是否始终绑定到 Word,或者如果 Excel 在前台运行,它们是否可能无意中引用 Excel 对象?
-
如果我想打开 Word,启动一个(长而复杂的)宏运行,然后将焦点切换到另一个应用程序(例如 Excel),我是否需要修改对全局变量(如 ActiveDocument、应用程序和选择)的引用以明确指向对象的 Word 版本,以便它们不会与 Excel 版本混淆?
我不确定你说的Word.Global
是什么意思,你能澄清一下吗?最好使用一些使用此类调用的代码示例。
在 VBA Word 宏中,对全局对象(如应用程序和选择)的引用是否始终绑定到 Word,或者如果 Excel 在前台运行,它们是否可能无意中引用 Excel 对象?
除非另有限定,否则Application
始终引用当前应用程序对象。如果您的 VBA 在 Word 中,则这将始终返回 Word.Application 对象。
Word如果我想打开Word,请启动一个(长而复杂的)宏运行,然后将焦点切换到另一个应用程序,例如Excel,
中的宏不会被其他前台任务混淆,但 Word 应用程序在宏运行时期间可能无法响应。
您可能需要采取措施来防止 Word 应用程序在运行时占据焦点。对于包括您的大多数应用程序,尽管我认为这不会出现问题。将文档拆分为多个"新"文档时,创建新的文档对象并分配 visible=False:
Set doc = Documents.Add(Visible:=False)