ActiveSheet.Delete不显示提示(当它应该)

问题描述:

晚上好,我有一个非常简单的Sub过程删除活动工作表的插件。为了便于使用,我通过加载项的Workbook_Open调用中的Application.OnKey将Sub绑定到了一个组合键。ActiveSheet.Delete不显示提示(当它应该)

请参阅下面的代码。尽管使用了Application.DisplayAlerts = True,但实际的代码执行将删除没有提示的工作表。但是,由于这是一个关键绑定,我想强制提示以避免意外删除。

发生了什么事?

Public Sub DeleteActiveSheet() 

    Application.DisplayAlerts = True 

    If ActiveWorkbook.Sheets.Count = 1 Then 
     MsgBox "You cannot delete the only sheet in a workbook." 
     Exit Sub 
    End If 

    ActiveSheet.Delete 

End Sub 

编辑:我应该指出,单步调试代码产生预期的行为,并显示在迄今所做的所有测试的提示。我很难过。

事实证明:如果工作表中有任何数据,提示删除工作表仅会触发提示。

在我的大多数测试中,我添加一张纸然后立即尝试删除它,即使在我期待的时候也不会触发提示。

在工作表上有任何数据,然后按预期激活keybind会产生提示。

我刚刚试过你的代码,并出现提示。这可能是您的设置的问题。 enter image description here

我应该提到我将它绑定到ctrl + g并执行代码。

+0

我会尝试重新映射组合键,但是什么设置可能会导致这种情况?我不熟悉任何能够抑制Excel中的提示的事情,因为很久以前我就会发现这些提示! – mikstravaganza

+0

我重新映射到Ctrl-g以及Ctrl-',并且仍然具有相同的非提示行为。 – mikstravaganza

+0

我不相信有一个设置为Excel禁用所有警报。它在默认情况下启用,并在您的代码完成时重新启用。当只有一个表单时,您的消息框是否显示? – Kudu2