vba - 从Excel VBA关闭Word应用程序

标签 vba excel

我试图在宏的开头关闭所有打开的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/

相关文章:

c# - 如何将新的 TextRange.Run 添加到 PowerPoint 文本框?

VBA 在 PDF XChange Viewer 中打开文件导出的 Excel 文件

android - 如何求和Sqlite数据库的垂直列,然后将其导出到Excel Sheet Android

excel - 匹配/索引/Vlookup 公式

excel - 在 Excel 中使用条件格式突出显示不均匀/偶数月份

excel - 如何使用 VBA 控制已经打开的 Web 文件对话框?

vba - RibbonXml togglebutton OnAction 找不到回调函数

vba - 声明自定义工作表名称时需要对象错误

vba - 粘贴值而不是公式

vba - 我怎样才能 "force"Excel正确计算分页符?