Kỹ thuật sửa lỗi cho Excel 2016 VBA

0
131

Kiểm tra mã của bạn

Có lẽ kỹ thuật sửa lỗi đơn giản nhất chỉ đơn giản là xem xét kỹ mã của bạn để xem bạn có thể tìm ra vấn đề hay không. Phương pháp này, tất nhiên, đòi hỏi kiến ​​thức và kinh nghiệm. Nói cách khác, bạn phải biết những gì bạn đang làm. Nếu bạn may mắn, lỗi sẽ nhảy ra ngay lập tức và bạn tát vào trán mình và nói, Dạo! Khi cơn đau trán giảm đi, bạn có thể khắc phục vấn đề.

Chú ý cách sử dụng các từ, nếu bạn may mắn. Đó là bởi vì bạn thường phát hiện ra lỗi khi bạn làm việc trên chương trình của mình trong tám giờ liền, đó là 2 giờ sáng và bạn đang chạy bằng caffeine và ý chí. Vào những lúc như vậy, bạn thật may mắn nếu bạn thậm chí có thể nhìn thấy mã của mình chứ đừng nói đến việc tìm ra lỗi. Do đó, đừng ngạc nhiên nếu chỉ cần kiểm tra mã của bạn không đủ để khiến bạn tìm và loại bỏ tất cả các lỗi mà nó chứa.

Sử dụng chức năng MsgBox

Một vấn đề phổ biến trong nhiều chương trình liên quan đến một hoặc nhiều biến không đảm nhận các giá trị bạn mong đợi. Trong các trường hợp như vậy, giám sát (các) biến trong khi mã của bạn chạy là một kỹ thuật gỡ lỗi hữu ích. Một cách để làm điều này là bằng cách chèn các hàm MsgBox tạm thời vào thói quen của bạn. Ví dụ: nếu bạn có một biến có tên CellCount, bạn có thể chèn câu lệnh sau:

MsgBox CellCount

Khi bạn thực hiện thường trình, hàm MsgBox sẽ hiển thị giá trị của CellCount.

Nó thường hữu ích để hiển thị các giá trị của hai hoặc nhiều biến trong hộp thông báo. Câu lệnh sau hiển thị giá trị hiện tại của hai biến: Loop Index (1) và CellCount (72), được phân tách bằng khoảng trắng.

MsgBox Loop Index & xông vào & CellCount

Lưu ý rằng hai biến được kết hợp với toán tử ghép (&) và chèn một ký tự khoảng trắng giữa chúng. Mặt khác, hộp thông báo kết hợp hai giá trị lại với nhau, làm cho chúng trông giống như một giá trị. Bạn cũng có thể sử dụng hằng số tích hợp, vbNewLine, thay cho ký tự khoảng trắng. vbNewLine chèn ngắt nguồn cấp dữ liệu, hiển thị văn bản trên một dòng mới. Câu lệnh sau hiển thị ba biến, mỗi biến trên một dòng riêng biệt:

MsgBox Loop Index & vbNewLine & CellCount & vbNewLine & MyVal

Kỹ thuật này không giới hạn trong việc theo dõi các biến. Bạn có thể sử dụng hộp thông báo để hiển thị tất cả các loại thông tin hữu ích trong khi mã của bạn đang chạy. Ví dụ: nếu mã của bạn lặp qua một loạt các trang tính, câu lệnh sau sẽ hiển thị tên và loại trang tính đang hoạt động:

MsgBox ActiveSheet.Name & trong phiên bản & TypeName (ActiveSheet)

Nếu hộp thông báo của bạn hiển thị điều gì đó bất ngờ, hãy nhấn Ctrl + Break và bạn thấy hộp thoại cho bạn biết Việc thực thi mã đã bị gián đoạn , bạn có bốn lựa chọn:

  • Nhấp vào nút Tiếp tục. Mã tiếp tục thực thi.
  • Nhấp vào nút Kết thúc. Thi hành dừng lại.
  • Nhấp vào nút Gỡ lỗi. VBE chuyển sang chế độ Gỡ lỗi.
  • Nhấp vào nút Trợ giúp. Một màn hình trợ giúp cho bạn biết rằng bạn đã nhấn Ctrl + Break. Nói cách khác, nó không hữu ích lắm.

Chèn các câu lệnh Debug.Print

Thay thế cho việc sử dụng các hàm MsgBox trong mã của bạn, bạn có thể chèn một hoặc nhiều câu lệnh Debug.Print tạm thời. Sử dụng các câu lệnh này để in giá trị của một hoặc nhiều biến trong cửa sổ Ngay lập tức. Dưới đây là một ví dụ hiển thị các giá trị của ba biến:

Gỡ lỗi.Print Loop Index, CellCount, MyVal

Lưu ý rằng các biến được phân tách bằng dấu phẩy. Bạn có thể hiển thị bao nhiêu biến tùy thích với một câu lệnh Debug.Print.

Không giống như MsgBox, các câu lệnh Debug.Print không dừng mã của bạn. Vì vậy, bạn cần để mắt đến cửa sổ Ngay lập tức để xem những gì đang diễn ra.

Sau khi bạn gỡ lỗi mã của mình, hãy nhớ xóa tất cả các câu lệnh Debug.Print. Ngay cả các công ty lớn như Microsoft thỉnh thoảng quên xóa các tuyên bố Debug.Print của họ. Trong một số phiên bản Excel trước, mỗi lần bổ trợ Phân tích ToolPak được mở, bạn sẽ thấy một số thông báo lạ trong cửa sổ Ngay lập tức. Vấn đề đó cuối cùng đã được khắc phục trong Excel 2007.

Sử dụng trình gỡ lỗi VBA

Các nhà thiết kế Excel rất quen thuộc với khái niệm lỗi. Do đó, Excel bao gồm một bộ công cụ gỡ lỗi có thể giúp bạn khắc phục các sự cố trong mã VBA của bạn.

Xem thêm: Chọn Phạm vi VBA của Excel

Khóa học VBA Excel tại Hà Nội