在Excel中,可以打开多个窗口来查看同一个工作簿:
ThisWorkBook.NewWindow
等然后可以通过Workbook_WindowDeactivate(ByVal Wn As Window)
事件捕获窗口激活的更改。
但Excel VBA中是否有一种方法可以检测用户是否尝试关闭特定窗口?
请注意,这与不与关闭整个工作簿相同。
答案 0 :(得分:0)
根据MSDN for Excel 2007," Application对象的Windows集合包含应用程序中的所有窗口... " (ref here,但要小心MSDN中的链接断开 - 您可能需要在MSDN中搜索" Window Object"。
听起来您并不关心检测用户表单,因此可以使用Application.Windows集合。在事件期间循环遍历所有窗口,并检查集合中的窗口是否符合您的条件,以查看该窗口是否打开。