ActiveSheet.Delete没有显示提示(何时应该)

时间:2017-10-13 00:24:45

标签: vba excel-vba excel-2016 excel

晚上好,我有一个加载项,带有一个非常简单的Sub过程来删除活动表。为了便于使用,我通过Add-in的Workbook_Open调用中的Application.OnKey将Sub绑定到一个组合键。

请参阅下面的代码。尽管使用了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

编辑:我应该提一下,单步执行代码会产生预期的行为,并在到目前为止完成的所有测试中显示提示。我很难过。

2 个答案:

答案 0 :(得分:0)

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

我应该提一下,我将它绑定到ctrl + g并以这种方式执行代码。

答案 1 :(得分:0)

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

在我的大多数测试中,我会添加一张工作表然后立即尝试将其删除,即使在我预期的时候也不会触发提示。

在工作表上有任何数据,然后激活密钥绑定会产生预期的提示。