【问题标题】:Closing word application from excel vba来自excel vba的结束词应用程序
【发布时间】:2016-12-12 12:11:25
【问题描述】:

我正在尝试在宏的开头关闭所有打开的单词应用程序,尽管我不知道打开了哪些文档,也无法将它们设置为对象。 谢谢。

【问题讨论】:

标签: vba excel


【解决方案1】:

这将关闭所有正在运行的 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

【讨论】:

  • 当您使用 OERN 捕获可能的错误时,您必须尽快恢复错误处理。在这种情况下,On Error Go To 0 紧跟在Set objWord ... 之后
【解决方案2】:

试试下面的代码,它会关闭 Word 应用程序(不保存)。

Option Explicit

Sub CloseWordWindows()

Dim objWord As Object

On Error Resume Next
Set objWord = GetObject(, "Word.Application")

' if no active Word is running >> exit Sub
If objWord Is Nothing Then
    Exit Sub
End If

objWord.Quit
Set objWord = Nothing

End Sub

【讨论】:

  • 如果没有 Word 应用程序实例在运行,您不会收到错误消息吗?
  • @RobinMackenzie 今天我的键盘技巧很高,已经修好了:) 即使我喜欢你的循环
  • @RobinMackenzie 我喜欢这里的改进学习,你的循环是如此简单(我还没有想到)
【解决方案3】:

另一种选择是使用Shell 来访问 的优雅

Sub Comesfast()
X = Shell("powershell.exe kill -processname winword", 1)
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 2019-04-16
    • 2012-07-01
    • 1970-01-01
    • 2017-08-30
    相关资源
    最近更新 更多