Các lỗi Macro thường gặp khi lập trình VBA
Trong bài này mình sẽ đưa ra một số lỗi Macro thường gặp khi bạn lập trình Excel VBA. Nếu bạn là người đang tìm hiểu về VBA thì chắc chắn sẽ gặp phải những lỗi này, và qua bài này bạn sẽ biết cách fix nó.
Khi bạn học bất kì một ngôn ngữ lập trình nào cũng vậy, việc ngôn ngữ đó hỗ trợ Debug là điều rất tuyệt vời. VBA cũng vậy, thông qua những thông báo thì bạn sẽ biết mình đã mắc phải lỗi cú pháp hay một lỗi ngớ ngẩn nào đó.
Trước tiên hãy tạo một Command Button nhé, chúng ta sẽ thực hành trên sự kiện click của button này.
1. Lỗi chưa khai báo biến trong VBA
Giả sử bạn nhập đoạn code sau vào sự kiện click đó:
Bài viết này được đăng tại [free tuts .net]
x = 2 Range("A1").Valu = x
Thì khi click vào button bạn sẽ nhận được một thông báo lỗi như sau:
Nguyên nhân là biến x chưa được định nghĩa (Variable not defined).
Quay trở lại Visual Basic Editor, bạn sẽ thấy một dòng màu vàng chỉ đến hàm bị lỗi, và biến x
được bôi xanh. Bây giờ bạn hãy click vào nút Reset để dừng trình Debugger lại.
Khắc phục lỗi này khá đơn giản, chỉ cần khai báo biến x
trước khi sử dụng là được.
2. Lỗi thuộc tính hoặc phương thức không tồn tại trong VBA
Bây giờ ta sẽ khắc phục lỗi chưa khai báo biến bằng cách bổ sung đoạn code sau ở phía trên cùng của hàm.
Dim x As Integer
Lúc này toàn bộ code bên trong hàm sẽ là:
Dim x As Integer x = 2 Range("A1").Valu = x
Bây giờ ta sẽ thực hiện lại từng bước gỡ rối cho hàm này.
B1: Đầu tiên hãy bỏ con trỏ chuột đằng trước của hàm (ngay trước đoạn code Private). Sau đó nhấn F8 thì dòng màu vàng xuất hiện.
B2: Hãy nhấn F8 thêm một lần nữa thì bạn sẽ thấy dòng Range("A1").Valu = x
sẽ bị bôi vàng.
Lúc này hộp thoại thông báo lỗi sẽ xuất hiện như sau:
Lỗi nó báo là "Object doesn't support this property or method", ý là phương thức hoặc thuộc tính mà chúng ta đang sử dụng không tồn tại.
Xem lại thì ta viết thuộc tính Value bị thiếu, hãy fix lại đầy đủ như sau:
Dim x As Integer x = 2 Range("A1").Value = x
Và vậy là ta đã fix xong toàn bộ lỗi.
3. Lỗi sai cú pháp Syntax Error
Còn một lỗi thường gặp nữa đó là lỗi sử dụng sai cú pháp, mình cũng hay mắc phải lỗi này vì mình gõ nhanh và hay bị nhầm lẫn với một số ngôn ngữ khác.
Ví dụ, bạn sử dụng đoạn code sau để khai báo biến x.
Dim x Integer
Cú pháp đúng phải là:
Dim x As Integer
Nên khi debug thì bạn sẽ nhận được lỗi như sau:
Cách tốt nhất để fix lỗi này là xem dòng đó ta đang sử dụng lệnh nào, lên Google xem lại cú pháp để sửa cho đúng nhé.
Trên là một vài chia sẻ về những lỗi thường gặp trong lập trình Macro VBA. Chúng ta có hai lỗi cơ bản, đó là lỗi chưa khai báo biến, lỗi cú pháp hoặc lỗi thuộc tính / phương thức không tồn tại.