我试图在宏的开头关闭所有打开的Word应用程序,尽管我不知道哪些文档打开了,而且我无法将它们设置为对象。 谢谢。
最佳答案
这将关闭所有正在运行的 Word 文档。
如果没有运行任何 Word 应用程序实例,您需要On Error Resume Next
来防止出现错误。
Option Explicit
Sub CloseWordDocuments()
Dim objWord As Object
Do
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
On Error Go To 0
If Not objWord Is Nothing Then
objWord.Quit
Set objWord = Nothing
End If
Loop Until objWord Is Nothing
End Sub
编辑
下面的更正,因为上面的循环有一个缺陷,即它会在第一个 Word 实例关闭后退出......
Option Explicit
Sub CloseWordDocuments()
Dim objWord As Object
Dim blnHaveWorkObj As Boolean
' assume a Word object is there to be quit
blnHaveWorkObj = True
' loop until no Word object available
Do
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If objWord Is Nothing Then
' quit loop
blnHaveWorkObj = False
Else
' quit Word
objWord.Quit
' clean up
Set objWord = Nothing
End If
Loop Until Not blnHaveWorkObj
End Sub
关于vba - 从Excel VBA关闭Word应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41100661/