Bí kíp sửa lỗi gặp phải khi lập trình VBA

Nếu bạn đã sử dụng VBA được một thời gian, có lẽ bạn cũng phải công nhận rằng thi thoảng bản thân cũng rất dễ mắc phải một số lỗi cơ bản. Thực tế thì nhiều chuyên gia lập trình VBA cũng không tránh khỏi điều đó, một phần vì họ chưa thực sự cố gắng hết sức. Quy trình tìm kiếm và sửa lỗi trong đoạn mã VBA được gọi chung là “debugging” (gỡ lỗi).

Phân loại lỗi

Về cơ bản lỗi gặp phải trong VBA được chia thành 3 dạng:

  • Lỗi cú pháp: Phần lớn lỗi này do đoạn code được viết không chính xác. Chủ yếu bao gồm lỗi viết sai chính tả các từ khóa, đóng mở ngoặc không thống nhất, và vô vàn các lỗi cú pháp khác. Các lỗi cú pháp sẽ bị Excel đánh dấu đỏ và đoạn code chỉ có thể chạy được nếu như các lỗi trên được sửa xong.
  • Lỗi run-time (thời điểm chạy): Lỗi này xảy ra trong quá trình chạy code. Có rất nhiều các dạng lỗi run-time khác nhau. Chẳng hạn, nếu như đoạn code của bạn kéo đường dẫn đến một tập tin không tồn tại, lập tức lỗi run-time sẽ xuất hiện. Khi đó trên màn hình Excel sẽ xuất hiện một hộp thoại thông báo lỗi.
  • Lỗi logic: Lỗi này xảy ra do phương pháp lập trình có sự sai lệch. Lỗi logic không phải lúc nào cũng đồng nghĩa với lỗi run-time. Nhiều trường hợp nó chỉ cho ra kết quả không chính xác mà thôi.

Gỡ lỗi code là quá trình tìm kiếm và xử lý các lỗi run-time và lỗi logic.

8 lời khuyên làm sao để giảm thiểu các lỗi gặp phải

Không có cách nào có thể giúp bạn loại bỏ hoàn toàn tất cả các lỗi lập trình kể trên, nhưng dưới đây sẽ là một vài lời khuyên giúp bạn giảm bớt số lượng lỗi có thể mắc phải đến mức tối thiểu:

  1. Sử dụng lệnh “Option Explicit” trước khi bắt đầu 1 mô-đun: Việc này yêu cầu bạn phải phân loại từng biến giá trị mà bạn sử dụng theo đúng dạng dữ liệu. Tuy có hơi tốn thời gian một chút nhưng bạn có thể tránh được lỗi ghi sai tên biến giá trị. Ngoài ra còn có 1 ích lợi nhỏ nữa: tốc độ chạy các hàm thủ tục sẽ được cải thiện đáng kể.
  2. Định dạng lại đoạn code bằng cách thụt lề vào: Sử dụng phương pháp thụt lề để mô tả từng đoạn code nhỏ là một cách làm hiệu quả. Đặc biệt khi bạn có vài vòng lệnh lồng vào nhau , việc thực hiện thụt lề liên tục sẽ giúp bạn quản lý các dòng lệnh được dễ dàng hơn.
  3. Cẩn thận với lựa chọn “Tiếp tục” trong hộp thoại thông báo lỗi: Sau khi click vào lựa chọn đó, Excel sẽ tự động lờ đi lỗi thông báo và tiếp tục thực hiện lệnh trước đó. Trong một số trường hợp, có nhiều lỗi đáng ra không nên bỏ qua thì lại bị Excel bỏ qua trong quá trình chạy code. Điều này dễ gây ra một số lỗi phát sinh mà bạn không lường trước được.
  4. Sử dụng càng nhiều ghi chú càng tốt: Chẳng gì khó chịu hơn là phải kiểm tra lại 1 đoạn code bạn chạy từ 6 tháng trước mà trong đầu không hề có một chút khái niệm gì về cách thức hoạt động của nó cả. Việc viết thêm vài ghi chú để giải thích phương pháp hoạt động của code có thể giúp bạn tiết kiệm được khối thời gian trong tương lai.
  5. Dùng các hàm thủ tục và công thức đơn giản hơn: Tách đoạn code thành các mô-đun nhỏ hơn, mỗi mô-đun chuyên chỉ giải quyết 1 vấn đề cụ thể thì sau này công việc gỡ lỗi các đoạn mã đó sẽ trở nên đơn giản hơn.
  6. Dùng phần mềm sao lưu macro để nắm được tính năng và phương pháp: Nếu không thể nhớ được cú pháp của 1 tính năng hay 1 phương pháp nào đó, đơn giản chỉ cần lưu nội dung macro lại và tận dụng đoạn code đã được lưu trước đó.
  7. Thử một hướng đi khác: Nếu một hàm thủ tục hay dùng không sao hoạt động được, hãy bỏ nó đi và nghĩ một ý tưởng khác. Nhiều trường hợp Excel vẫn có nhiều cách khác nhau để giúp bạn đạt được cùng một kết quả như ý.
  8. Hiểu hơn về tính năng gỡ lỗi của Excel: Tuy có hơi khó sử dụng lúc đầu nhưng dần dần bạn sẽ thấy tính năng gỡ lỗi trong Excel là một công cụ cực kỳ tuyệt vời. Tôi đã sử dụng VBA được một thời gian trước khi biết cách sử dụng công cụ gỡ lỗi (có hướng dẫn chi tiết trong tab Help trực tuyến). Chỉ mất khoảng 1 tiếng để làm quen với nội dung của nó nhưng ước tính nó đã tiết kiệm cho tôi được hàng tá thời gian.

Đăng ký ngay: lớp học VBA ở Hà Nội với các chuyên gia