在关闭时禁止保存更改提示

时间:2018-12-14 01:50:36

标签: excel vba

我想关闭工作簿并在双击特定单元格时取消保存更改提示。在我尝试过的三个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

解决方案

感谢Arul向我推荐此answer

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

1 个答案:

答案 0 :(得分:0)

我已经在工作簿中尝试过此代码,但是我的工作簿也与以下消息框一起崩溃了:

Excel Crash Message

我当前正在使用Excel 2019 64位。

似乎是个错误!

但是我为您提供了两种解决方法:

解决方法#1

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

但是此代码不仅会关闭当前工作簿,还会关闭整个应用程序。


解决方法#2

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