2011-12-20 5 views
17

Tôi có một nút trên biểu mẫu của tôi xóa toàn bộ bảng tính 8 trang tính. Đôi khi tôi muốn xóa nó, nhưng tôi rất ghét làm điều đó một cách tình cờ. Tôi đã thử googling nó, nhưng mỗi kết quả tôi đã tìm thấy giả định tôi có một nắm vững hơn nhiều của VBA hơn tôi. Làm thế nào tôi có thể làm cho nó như vậy khi nút được nhấp vào một hộp thoại bật lên nói rằng "Điều này sẽ xóa tất cả mọi thứ! Bạn có chắc chắn? [Tiếp tục] [Hủy]"? Cảm ơn.Thêm "Bạn có chắc chắn không?" để nút excel của tôi, làm thế nào tôi có thể?

Trả lời

53

Mở mã nút hiện tại của bạn, chỉ cần chèn dòng này trước khi các thủ tục:

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

Điều này sẽ buộc nó bỏ nếu người dùng nhấn không.

+0

1 bộ lặp để làm việc với các hằng số sẵn có – brettdj

+0

+1 Đồng ý với @brettdj. Nó thường tốt hơn để sử dụng các hằng số cho khả năng đọc và bảo trì. –

+3

+1 Tôi thích câu trả lời này, nhưng nghiêm túc nói, 'Nếu MsgBox (" Điều này sẽ xóa tất cả mọi thứ, bạn có chắc không? ", VbOKCancel) = vbOK Sau đó, sẽ có được gần hơn kể từ khi ông yêu cầu' Tiếp tục' và 'Hủy bỏ nút . – JimmyPena

0

Chỉ cần tạo biểu mẫu người dùng tùy chỉnh được hiển thị khi nhấn nút "xóa", sau đó liên kết nút tiếp tục với mã thực tế sẽ xóa. Làm cho nút hủy bỏ ẩn userform.

9

Tạo phụ mới với mã sau và gán cho nút của bạn. Thay đổi "DeleteProcess" thành tên mã của bạn để xóa. Điều này sẽ bật lên một hộp với OK hoặc Hủy bỏ và sẽ gọi phụ xóa của bạn nếu bạn nhấn ok và không nếu bạn nhấn hủy bỏ.

Sub AreYouSure() 

Dim Sure As Integer 

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

End Sub 

Jesse