如何检查工作簿是否在停用事件中关闭

时间:2017-09-13 15:02:07

标签: excel vba excel-vba

解决

当代码在workbook_deactivate过程中时,有没有办法检查工作簿是否正在关闭?所以我可以向用户发送不同的消息,具体取决于他们是否只是离开另一个工作簿或者他们正在关闭文件。喜欢以下

Private Sub Workbook_Deactivate()

if thisworkbook.closing then
   msgbox "message1"
else
   msgbox "message2"
end if

End Sub

我在网上搜索但根本没有解决方案。 所以任何帮助将不胜感激

我想到了一个技巧。我在before_close事件中将值1置于Z1000(如果可用)中,并且在取消激活时,我检查Z1000的值是否正确。是的。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Range("Z1000").Value = 1 'wherever is avaliable
    Me.Saved = True
End Sub

Private Sub Workbook_Deactivate()
    If Range("Z1000").Value = 1 Then
        MsgBox "quitting"
    Else
        MsgBox "deactivating"
    End If
End Sub

2 个答案:

答案 0 :(得分:1)

您可以使用BeforeClose事件

检测到这一点
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  ' set Cancel to true to prevent it from closing
End Sub

答案 1 :(得分:-5)

您可以查看此代码

ThisWorkbook.Close True