Ngày mai trời lại sáng
Thành viên thường trực
- Tham gia
- 4/7/21
- Bài viết
- 339
- Được thích
- 139
Chào các bạn,em có một đoạn code như sau:
Đoạn code trên nó có thể sảy ra lỗi tại bất cứ dòng nào, em muốn làm thế nào để hiển thị chi tiết lỗi cụ thể tại dòng đó như:
Ví dụ A2 em nhập "A" trong khi code khai báo là Integer, mong muốn code thông báo đại loại:
Có lỗi do nhập liệu tại Sheet1.Range("A2") , mã lỗi là "XYZ", thông tin lỗi "ABC"
Ý em là tránh phải mở code để kiểm tra, mà có thể hiển thị thông tin lỗi luôn, còn nếu bắt lỗi cho từng dòng thì cũng có thể nhưng phải code nhiều và cũng khó thể lườn hết được vấn đề khác, không biết có cách nào khác không?
Mã:
Sub test()
Dim db As Double, i As Integer, k As Long, rng As Range
On Error GoTo Loi
k = Sheet1.Range("A1") 'Co the say ra loi neu A1 khong phai la gia tri kieu long
i = Sheet1.Range("A2") 'Co the say ra loi neu A1 khong phai la gia tri kieu text
db = k / i 'co the say ra loi neu i=0
Set rng = Range(Sheet1.Range("A3").Value) ' Co the xay ra loi neu A3 =""
'v.v... cac truong hop loi co the say ra
Loi:
Dim s1, s2, s3
s1 = Err.Number
s2 = Err.Description
'...
MsgBox s1 & vbNewLine & s2 & vbNewLine, vbCritical
End Sub
Ví dụ A2 em nhập "A" trong khi code khai báo là Integer, mong muốn code thông báo đại loại:
Có lỗi do nhập liệu tại Sheet1.Range("A2") , mã lỗi là "XYZ", thông tin lỗi "ABC"
Ý em là tránh phải mở code để kiểm tra, mà có thể hiển thị thông tin lỗi luôn, còn nếu bắt lỗi cho từng dòng thì cũng có thể nhưng phải code nhiều và cũng khó thể lườn hết được vấn đề khác, không biết có cách nào khác không?