06/04/2021, 14:51

Các lỗi Macro thường gặp khi lập trình VBA - ự học Excel 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à ...

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 đó:

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:

compile error png

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.

click reset png

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.

first line turns yellow png

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.

press f8 three more times png

Lúc này hộp thoại thông báo lỗi sẽ xuất hiện như sau:

run time error png

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:

loi sai cu phap JPG

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.

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0