Try Catch VBA Excel còn gọi là on error goto dùng để điều hướng khi code bị lỗi.
Điều hướng code VBA là gì, là khi lỗi phát sinh thì VBA chuyển đến các hàm LỖI CỦA HỆ THỐNG, ta không muốn VBA chuyển hướng như vậy mà ta phải yêu cầu VBA hãy chuyển đến code mình viết khi có lỗi.
Khi lỗi phát sinh từ VBA sẽ có thông báo liên quan đến hệ thống gây ra một số hậu quả như sau:
* Làm cho người sử dụng phần mềm excel cảm thấy lúng túng vì thông báo theo dạng kỹ thuật, đọc nhưng khó hiểu.
* Có thể dừng ứng dụng excel một cách đột ngột, làm cho người dụng ứng dụng excel khó chịu
Nếu lập trình vba không sử dụng xử lý lỗi trong VBA Excel có thể dẫn đến các trường hợp trên
Khắc phục có nghĩa là mình sẽ điều hướng code khi vba có lỗi hệ thống thì phải chuyển đến code vba mình đã tạo.
Giải pháp: * Trong VBA đã cung cấp cho lập trình 1 cú pháp xử lý lỗi vba
Private Sub NameSub()
on error goto HamGoiKhiLoi
.. code vba nghiệp vụ
exit sub
HamGoiKhiLoi:
..
..
.. code vào đây khi lỗi xảy ra.
End Sub
Một ví dụ lỗi đơn giản nhất trong VBA đó là khi chia 1 số cho số 0 sẽ phát sinh lỗi hệ thống
private sub XuLy()
Dim i As Integer
On Error GoTo LOI
so = 0
i = 5 / so 'L?i vì chia 1 s? cho 0
Exit Sub
LOI:
MsgBox "5 phai chia cho so KHAC 0"
end sub
Sub Button1_Click()
Dim i As Integer
so = 0
i = 5 / so
End Sub
Nếu không sử dụng On Error GoTo thì báo lỗi từ hệ thống: Run-time error, division by Zero
Người dụng không chuyên sâu về code vba thì đọc khó hiểu và thoát excel đột ngột.
Nếu sử dụng On Error GoTo thì khi lỗi sẽ báo 1 câu do lập trình viên chỉ định.
Trong thực tế thì việc ứng On Error GoTo vào những lỗi mà người dụng không thể đoán trước được, chứ không đơn giản như ví dụ chia cho 1 số 0 như trên.
Đọc 1 file text bằng VBA, nhưng file text đó không tồn tại trên ổ cứng (cài đặt ứng dụng thì lúc đầu có file text), thì đây là một lỗi lập trình viên không thể đoán trước nó xảy lúc nào, mà chỉ đoán nó sẽ xảy ra trong tương lại.
* Bài tập đọc file text 01: Mời bạn xem bài đọc file text, làm theo như ví dụ code vba, sau khi đọc thành công ta xóa file file text đã tạo ra từ ổ D, sau đó xem kết quả như thế nào ? hãy code thêm vào để không phải thông báo lỗi từ hệ thống VBA mà báo là "File text không tồn tại"
- Kết nối VBA Excel để SQL Server, lúc đầu kết nối bình thường nhưng sau 1 thời gian máy chỉ bị thay đổi tên server, hay tên user, pass.. dẫn đến kết nối bị lỗi, thì đây cũng là trường hợp người lập trình viên không thể đoán được nó xảy ra lúc nào, mà chỉ đoán là nó SẼ xảy ra trong tương lại.
Mời bạn xem bài viết xử lý lỗi khi kết nối VBA Excel không thành công với SQL Server
Video try catch phần 2:
Try Cath VBA Excel khi kết nối SQL Server - quản lý thông minh để tư vấn dạng AI để khách hàng giải quyết lỗi nhanh - xem video
VBA Excel kết nối SQL Server | Thực thi câu SQL Insert , Update, Delete - xem video
Điều hướng lỗi trong VBA Excel hay còn gọi theo từ ngữ chung là try Catch VBA Excel