2013-02-20 22 views
8

Ngữ cảnh của câu hỏi này là tôi đang sử dụng các hộp thông báo như một công cụ để giúp tôi làm quen với một số lượng lớn các macro VBA đang chạy trên một tập hợp các sổ làm việc Excel.Có lệnh VBA nào gây ra lỗi để bắt đầu tại điểm đó không?

Tôi đang chèn cẩn thận các hộp tin nhắn bên trong mã bật lên và cho biết/nhắc tôi nơi chúng tôi đang ở trong mã. Tôi muốn có một nút trong các hộp này sẽ đưa tôi vào một gỡ lỗi của mã tại thời điểm đó.

Hiện tại giải pháp của tôi là thực hiện phân chia theo số không nếu nút 'Có' được chọn. Dưới đây là một đoạn mã mẫu:

Dim MyError as Double 
... 
If MsgBox("Just entered function XYZ(). Want to debug?", vbYesNo + vbDefaultButton2) = vbYes Then MyError = 1#/0 

Nó hoạt động nhưng không phải là rất thanh lịch.

Tôi đã hy vọng có một lệnh sẽ bắt đầu chế độ gỡ lỗi VBA tại điểm mà lệnh được gọi.

Trả lời

8

Lệnh Stop thực hiện điều này cho bạn:

If MsgBox("Just entered function XYZ(). Want to debug?", vbYesNo + vbDefaultButton2) = vbYes Then Stop 
7

Vâng, đó là:

Debug.Assert False 
+0

vì vậy bạn cũng có thể sử dụng: Debug.Assert (MsgBox ("Chỉ cần chức năng vào XYZ (Bạn muốn gỡ lỗi? ", VbYesNo + vbDefaultButton2) = vbYes) – gicalle

Các vấn đề liên quan