2017-10-13 101 views
0

晚上好,我有一個非常簡單的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 

編輯:我應該指出,單步調試代碼產生預期的行爲,並顯示在迄今所做的所有測試的提示。我很難過。

回答

0

事實證明:如果工作表中有任何數據,提示刪除工作表僅會觸發提示。

在我的大多數測試中,我添加一張紙然後立即嘗試刪除它,即使在我期待的時候也不會觸發提示。

在工作表上有任何數據,然後按預期激活keybind會產生提示。

0

我剛剛試過你的代碼,並出現提示。這可能是您的設置的問題。 enter image description here

我應該提到我將它綁定到ctrl + g並執行代碼。

+0

我會嘗試重新映射組合鍵,但是什麼設置可能會導致這種情況?我不熟悉任何能夠抑制Excel中的提示的事情,因爲很久以前我就會發現這些提示! – mikstravaganza

+0

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

+0

我不相信有一個設置爲Excel禁用所有警報。它在默認情況下啓用,並在您的代碼完成時重新啓用。當只有一個表單時,您的消息框是否顯示? – Kudu2

相關問題