2011-12-20 71 views
17

我在窗體上有一個按鈕,可清除整個8工作表。我確實希望偶爾清除它,但我不願意偶然這樣做。我嘗試過使用Google搜索,但是我發現的每一個結果都假設我對VBA的掌握比我更強。我該如何做到這一點,當按鈕被點擊一個對話框彈出「這將消除一切!你確定嗎?[繼續] [取消]」? 謝謝。添加「你確定嗎?」到我的excel按鈕,我怎麼能?

回答

53

在現有的按鈕代碼,只需在手術前插入此行:

If MsgBox("This will erase everything! Are you sure?", vbYesNo) = vbNo Then Exit Sub 

這將迫使它如果用戶按下退出沒有。

+0

+1整理器與內置常量一起工作 – brettdj 2011-12-20 09:47:01

+0

+1同意@brettdj。通常使用常量來提高可讀性和可維護性。 – 2011-12-20 19:09:06

+3

+1我喜歡這個答案,但嚴格來說,'如果MsgBox(「這會擦除所有東西,你確定嗎?」,vbOKCancel)= vbOK然後'會越來越近,因爲他要求'Continue'和'Cancel'按鈕。 – JimmyPena 2011-12-20 21:05:03

0

只要按下「刪除」按鈕時顯示的自定義用戶窗體,然後將繼續按鈕鏈接到實際刪除的代碼。使取消按鈕隱藏用戶窗體。

9

用下面的代碼創建一個新的子,並將其分配給你的按鈕。將「DeleteProcess」更改爲您的代碼的名稱以進行刪除。這會彈出一個包含確定或取消的框,如果您點擊確定,則會打電話給您的刪除子,如果您點擊取消則不會。

Sub AreYouSure() 

Dim Sure As Integer 

Sure = MsgBox("Are you sure?", vbOKCancel) 
If Sure = 1 Then Call DeleteProcess 

End Sub 

傑西

相關問題