closures由VBA打开的所有工作簿

我有一个Excel应用程序打开另一个工作簿存储到WBdatavariables。

我想要的是当我点击closuresbutton[X]closuresWBdata工作簿,然后如果我的应用程序是唯一剩下的工作簿打开,closuresExcel,否则closures此工作簿。

我试过这个:

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 

但是看起来之前的closures事件并不是要走的路,因为If的Else部分会在closures之前重新开始。

所以我试图把一个如果像这样:

 Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Save ThisWorkbook.WBdata.Close False If (Workbooks.Count = 1) Then Application.Quit End If End Sub 

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

我怎样才能正确地closuresWBdata然后这个工作簿,并closuresExcel,如果他们是唯一剩下的工作簿打开?