我想关闭工作簿并在双击特定单元格时取消保存更改提示。在我尝试过的三个methods中,第一个不起作用,其他三个使Excel 2010崩溃;他们只在2016年工作。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address(False, False) = "T1" Then
' ThisWorkbook.Saved = True ' Method 1
' ActiveWorkbook.Close savechanges:=False ' Method 2
Application.DisplayAlerts = False ' Method 3
ActiveWorkbook.Close
Application.DisplayAlerts = True
End If
End Sub
解决方案
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address(False, False) = "T1" Then
Cancel = True
Application.OnTime Now, "Close_Excel"
End If
End Sub
此answer的标准模块中包含此内容:
Sub Close_Excel()
Application.Quit
ThisWorkbook.Close savechanges:=False
End Sub
答案 0 :(得分:0)
我已经在工作簿中尝试过此代码,但是我的工作簿也与以下消息框一起崩溃了:
我当前正在使用Excel 2019 64位。
似乎是个错误!
但是我为您提供了两种解决方法:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address(False, False) = "T1" Then
Application.DisplayAlerts = False
Application.Quit
End If
End Sub
但是此代码不仅会关闭当前工作簿,还会关闭整个应用程序。
此answer的功劳。
在 Worksheet_BeforeDoubleClick 事件中使用以下代码:
If Target.Address(False, False) = "T1" Then
Call Module1.Close_Workbook1
End If
并在名为(Module1)的新模块中使用以下两个过程:
Sub Close_Workbook1()
Application.OnTime Now, "Close_Workbook2"
End Sub
Private Sub Close_Workbook2()
ThisWorkbook.Close SaveChanges:=False
End Sub