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会产生提示。
我会尝试重新映射组合键,但是什么设置可能会导致这种情况?我不熟悉任何能够抑制Excel中的提示的事情,因为很久以前我就会发现这些提示! – mikstravaganza
我重新映射到Ctrl-g以及Ctrl-',并且仍然具有相同的非提示行为。 – mikstravaganza
我不相信有一个设置为Excel禁用所有警报。它在默认情况下启用,并在您的代码完成时重新启用。当只有一个表单时,您的消息框是否显示? – Kudu2