Ngay cả những chuyên gia cũng mắc những lỗi VBA cơ bản và phổ biến khi viết code VBA. Sửa lỗi sai trong VBA của Microsoft sẽ dễ dàng hơn nếu bạn hiểu ý nghĩa của các thông báo lỗi cơ bản. Trong hướng dẫn này, UniTrain sẽ giới thiệu cho bạn 4 trong số các lỗi phổ biến nhất của VBA. Hãy tìm hiểu ý nghĩa và cách khắc phục chúng.

Cách phân biệt các loại lỗi VBA 

Bạn sẽ gặp phải 3 loại lỗi khi kiểm tra mã VBA: “Thời gian chạy, cú pháp và biên dịch”. Lỗi thời gian chạy VBA xảy ra trong quá trình thực thi và bao gồm các lỗi sau:

    • – Tham chiếu không hợp lệ: Mã của bạn chứa tham chiếu đến một biến hoặc đối tượng không tồn tại.
    • – Dữ liệu không hợp lệ: Mã của bạn đang cố gắng tham chiếu đến dữ liệu không tồn tại.
    • – Chia cho 0: Mã của bạn cố gắng chia cho số 0

Bạn có thể xử lý các lỗi này bằng cách sửa mã hoặc cho phép mã chạy nguyên trạng và sử dụng xử lý lỗi để xử lý chúng.

Lỗi cú pháp VBA xảy ra do lỗi chính tả, lỗi chính tả và lỗi trong chính câu lệnh, chẳng hạn như không bao gồm tất cả các đối số bắt buộc.

Lỗi biên dịch VBA xảy ra khi VBA không thể biên dịch mã. Biên dịch dịch mã nguồn thành các hướng dẫn thực thi mà bạn không thể nhìn thấy.

Bây giờ chúng ta hãy xem xét các lỗi phổ biến nhất của VBA.

Cách khắc phục Error 13 trong VBA

Có lẽ lỗi phổ biến nhất trong tất cả là Runtime Error 13: Type Mismatch. Bạn sẽ thấy lỗi này khi mã của bạn cố gắng gán một giá trị không khớp với loại dữ liệu của biến hoặc đối số.

Ví dụ: giả sử bạn khai báo một biến là một số nguyên và sau đó cố gắng chuyển biến đó thành một chuỗi văn bản. Trong trường hợp này, VBA sẽ trả về lỗi không khớp được hiển thị trong Hình A. Nhấp vào Gỡ lỗi và VBA sẽ đánh dấu dòng đang ném lỗi, như trong Hình B.

Hình A

Hình A

Hinh B

Hình B

Việc sửa lỗi thời gian chạy này tương đối dễ dàng, như trường hợp của ví dụ đơn giản này. Các nhà phát triển thường sử dụng tên biến i để biểu thị kiểu dữ liệu Số nguyên, vì vậy lỗi này phải rõ ràng. Mặt khác, hầu hết các thuộc tính trả về một kiểu dữ liệu cụ thể. Nếu biến không khớp với loại dữ liệu của thuộc tính đó, dòng sẽ trả về lỗi.

Nếu lỗi không xuất hiện ngay, hãy thử khai báo biến dưới dạng Variant  — nếu điều đó hiệu quả, nghiên cứu thêm một chút sẽ giúp bạn xác định loại dữ liệu chính xác mà thuộc tính yêu cầu.

Cách khắc phục lỗi cú pháp trong VBA

VBA thường để lộ lỗi chính tả khi bạn nhập mã để bạn dễ dàng sửa chữa. Mặt khác, một số khó tìm hơn, nhưng VBA sẽ cố gắng hỗ trợ.

Hình C cho thấy một lỗi biên dịch – một lỗi cú pháp cơ bản. Người dùng quên khai báo biến i, vì vậy VBA làm nổi bật biến đó và hiển thị lỗi. Thật dễ dàng để xác định sai lầm khi VBA thực sự làm nổi bật biến erring.

Vbaerrors C

Hình C

Giải pháp là thêm một câu lệnh khai báo: “Dim i As Integer”

Bạn phải sửa lỗi cú pháp để mã của bạn chạy. VBA cho thấy các loại lỗi cú pháp này khi nó cố gắng biên dịch mã.

Cách khắc phục lỗi biên dịch chung trong VBA

Lỗi biên dịch xảy ra trước khi mã thực sự chạy. Nó xảy ra trong nano giây đó giữa thời gian bạn gọi mã và VBA cố gắng thực thi nó. Nếu VBA không thể biên dịch mã, bạn sẽ thấy một thông báo tương tự như thông báo trong Hình D.

Vbaerrors D

Hinh D

Không có gì sai với dòng riêng lẻ, nhưng VBA không thể hoàn thành câu lệnh If vì nó không đầy đủ. Câu lệnh If yêu cầu một cái gì đó để tuân theo từ khóa Then – nếu điều kiện là đúng, mã sẽ làm gì? Thông tin đó không có ở đó.

Bạn phải sửa lỗi biên dịch trước khi có thể chạy mã.

Cách khắc phục lỗi chạy thời gian 9 trong VBA

Lỗi này thường xảy ra khi bạn yêu cầu một giá trị không tồn tại trong ngữ cảnh. Ví dụ: giả sử bạn đang làm việc với một mảng gồm năm giá trị và bạn yêu cầu giá trị thứ sáu. Nó không tồn tại và VBA sẽ chạy lỗi này như thể hiện trong Hình E.

Vbaerrors E

Hình E

Mô tả lỗi sẽ trở nên hữu ích và khi bạn nhấp vào Debug, VBA sẽ chọn dòng sai. Ngay lập tức, bạn biết rằng bạn đã yêu cầu một giá trị không tồn tại trong mảng. Từ đó, thường dễ dàng phát hiện ra lỗi.

Có nhiều loại lỗi khác, nhưng bốn loại này là một số lỗi phổ biến nhất mà hầu hết mọi người đều gặp phải. Bây giờ bạn đã biết nguyên nhân gây ra những lỗi này, bạn sẽ thấy dễ dàng để giải quyết chúng.

Xem thêm

Khóa học Ứng dụng SQL trong xử lý dữ liệu

Tags