我有一个打开的工作簿,带有“SaveClose”按钮。如果它是最后打开的工作簿,则希望该按钮上的事件关闭整个Excel应用程序。问题是,有可能打开了未知的personal.xlsb或任何其他不可见的宏工作簿。
我想知道是否打开了其他任何可行的Excel工作簿。是否检查不可见的工作簿?如果这是最后一个工作簿,请关闭Excel应用程序,如果不关闭事件工作簿,则这是我得到的:
Sub CloseForceSave()
'Save the workbook.
ThisWorkbook.Save
'If this is the only workbook opened in the current session, then...
If Workbooks.Count = 1 Then "or Workbooks.Count = 2" to account for personal.xlsb
'...quit Excel
Application.Quit
'Else...
Else
'...close the active workbook
ThisWorkbook.Close
End If
End Sub
最佳答案
当我这样做时,我只是忽略任何隐藏的工作簿。如果只有一个带有可见窗口的工作簿,我退出该应用程序。我不知道有什么比循环更好的计数方法,但是我从来没有打开足够多的工作簿来将其视为性能问题。
Function VisibleWorkbookCount() As Long
Dim wb As Workbook
Dim wd As Window
Dim lReturn As Long
For Each wb In Application.Workbooks
For Each wd In wb.Windows
If wd.Visible Then
lReturn = lReturn + 1
Exit For
End If
Next wd
Next wb
VisibleWorkbookCount = lReturn
End Function
关于excel - 有没有办法检查不可见的打开的Excel工作簿?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38644838/