使用VBA查找并关闭隐藏的单词应用程序

时间:2018-04-17 13:55:41

标签: vba ms-word

概述

我在excel中构建了一个vba程序,其目的是生成一个pdf文档。它的方式是,它填充一个单词ducment然后打印为pdf。

由于ux的原因,我已经决定用户不应该看到应用程序这个词。

Set wdApp = CreateObject("Word.Application")
wdApp.Visible = False

问题

我的问题来自于使用代码的一天。在运行和退出执行中后,我已经建立了一些隐藏的单词应用程序。 (正常执行不受此影响,因为我在代码的最后几行将wdApp设置为null)。

如何关闭所有这些隐藏的单词应用程序?

编辑:

阅读完评论后,我开始使用代码来部分完成我想要的内容。

Sub CloseWordFile_If_Open_And_Not_Visible()

Dim wdApp As Object

On Error Resume Next
On Error GoTo 0

    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    On Error GoTo 0

    If wdApp Is Nothing Then
        Exit Sub
    End If

    Do While wdApp.Visible = False

        wdApp.Quit SaveChanges:=wdDoNotSaveChanges

        On Error Resume Next
        Set wdApp = GetObject(, "Word.Application")
        On Error GoTo 0

        If wdApp Is Nothing Then
            Exit Sub
        End If
    Loop

End Sub

此代码的唯一问题是,如果它看到一个单词的实例,即.visible = true,那么它会停止并退出,而不会关闭任何后续的单词应用程序(其中.visible = false)。

有没有办法跳过这个单词实例并注册另一个单词应用程序,以便GetObject(,“Word.Application”)返回另一个应用程序?

0 个答案:

没有答案