关闭VBA打开的所有工作簿

时间:2017-03-10 10:24:54

标签: excel vba excel-vba

我有一个Excel应用程序,用于打开存储在WBdata变量中的另一个工作簿。

我想要的是当我点击关闭按钮[X]它关闭WBdata工作簿然后如果我的应用程序是打开的唯一剩余工作簿,关闭Excel,否则只需关闭此工作簿。

我试过了:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save
    ThisWorkbook.WBdata.Close False

    If (Workbooks.Count = 1) Then
        Application.Quit
    Else
        ThisWorkbook.Close
    End If
End Sub

但看起来之前的关闭事件并非如此,因为If的Else部分会在关闭之前再次发射。

所以我试着把这样的if:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
        ThisWorkbook.Save
        ThisWorkbook.WBdata.Close False

        If (Workbooks.Count = 1) Then
            Application.Quit
        End If
    End Sub

但结果是我关闭了所有工作簿,但没有关闭Excel应用程序。 (也许是因为application.quit在before_close事件上?)

如何正确关闭WBdata然后关闭此工作簿,如果它们是唯一剩下的工作簿,则关闭Excel?

0 个答案:

没有答案