Macro VBA – Hướng dẫn tìm và sửa lỗi (Debugging)

Có nhiều khi bạn chạy macro báo lỗi, mà không biết tìm và sửa lỗi như thế nào? Bài viết này sẽ hướng dẫn bạn làm điều đó.

Kiểm tra từng bước trong đoạn code:

Bằng cách nhấn F8, bạn có thể chạy từng bước trong đoạn code macro. Việc này rất hữu ích vì nó cho phép bạn nhìn thấy kết quả của mỗi dòng mã trên bảng tính.

Đặt một command button trên worksheet và thêm đoạn code bên dưới:

Dim i As Integer, j As Integer

For i = 1 To 2
For j = 1 To 5
        Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
Next j
Next i

Kết quả khi bạn nhấp chuột vào nút lệnh:

without-debugging

1. Xóa tất cả giá trị trong range A1:E2.

2. Mở Visual Basic Editor và giảm kích thước của màn hình để bạn có thể xem code trong Visual Basic Editor và bảng tính cùng một lúc.

3.Trên Visual Basic Editor, đặt chuột vào trước Private Sub … và nhấn F8.

Dòng đầu tiên này sẽ được tô màu vàng.

single-step-1

4. Nhấn F8 bốn lần. For i = 1 và j = 1, Excel VBA điền một số ngẫu nhiên giữa 20 và 100 vào ô giao nhau của dòng 1 và cột 1. Bằng cách lướt con trỏ ổn định vào một biến, bạn có thể nhìn thấy giá trị của biến.

single-step-2

5. Nhấn F8 hai lần nữa. Đối với i = 1, j = 2, Excel VBA điền một số ngẫu nhiên giữa 20 và 100 vào ô giao nhau của dòng 1 và cột 2.

single-step-3

6. Tiếp tục nhấp F8 để qua phần còn lại của mã này và Excel VBA điền các con số khác vào trong bảng tính. Đây là một cách tuyệt vời để tìm hiểu làm thế nào một vòng lặp hoạt động. Nếu bạn muốn dừng chương trình, nhấn nút Reset (Stop).

 

Điểm dừng code (Breakpoint)

Bạn đặt một breakpoint để ngưng thực hiện tại một dòng code cụ thể.

1. Xóa các giá trị trong range A1:E2.

2. Để thiết lập một breakpoint, nhấp chuột vào lề trái (màu xám), nơi bạn muốn đặt breakpoint. Một dấu chấm màu tròn đỏ xuất hiện.

set-breakpoint

3. Bấm vào mũi tên màu xanh lá cây để thực hiện chạy macro, macro sẽ chạy và dừng lại khi đến breakpoint.

Kết quả:

continue-execution

Chỉ có phần macro (for i=1) được thực hiện.

4. Để loại bỏ các breakpoint, nhấn vào dấu chấm màu đỏ. Tiếp theo, nhấp vào mũi tên màu xanh lá cây để tiếp tục thực hiện.

Nếu bạn nhận được một vĩ mô từ một người nào khác,  Debugging là cách tuyệt vời để hiểu mã. Bạn có thể dễ dàng nhìn thấy hiệu quả của mỗi dòng mã trên bảng tính của bạn.

Gửi nhận xét