在 vba Office 宏中使用全局对象



请解释以下内容:

  1. Word.Application和Word.Global有什么区别?

  2. 在 VBA Word 宏中,对全局对象(如应用程序和选择)的引用是否始终绑定到 Word,或者如果 Excel 在前台运行,它们是否可能无意中引用 Excel 对象?

  3. 如果我想打开 Word,启动一个(长而复杂的)宏运行,然后将焦点切换到另一个应用程序(例如 Excel),我是否需要修改对全局变量(如 ActiveDocument、应用程序和选择)的引用以明确指向对象的 Word 版本,以便它们不会与 Excel 版本混淆?

我不确定你说的Word.Global是什么意思,你能澄清一下吗?最好使用一些使用此类调用的代码示例。

在 VBA Word 宏中,对全局对象(如应用程序和选择)的引用是否始终绑定到 Word,或者如果 Excel 在前台运行,它们是否可能无意中引用 Excel 对象?

除非另有限定,否则Application始终引用当前应用程序对象。如果您的 VBA 在 Word 中,则这将始终返回 Word.Application 对象。

如果我想打开Word,请启动一个(长而复杂的)宏运行,然后将焦点切换到另一个应用程序,例如Excel,

Word

中的宏不会被其他前台任务混淆,但 Word 应用程序在宏运行时期间可能无法响应。

您可能需要采取措施来防止 Word 应用程序在运行时占据焦点。对于包括您的大多数应用程序,尽管我认为这不会出现问题。将文档拆分为多个"新"文档时,创建新的文档对象并分配 visible=False:

Set doc = Documents.Add(Visible:=False)

相关内容

  • 没有找到相关文章

最新更新