Visual Basic for Applications (VBA) là một triển khai của ngôn ngữ lập trình Visual Basic do Microsoft phát triển. VBA có thể được sử dụng để kích hoạt UDF, tự động hóa các tác vụ và để truy cập WinAPI thông qua DLL. Tuy nhiên, gần đây, nhiều báo cáo đã được đưa ra trong đó người dùng không thể thực hiện các lệnh nhất định và “ Chỉ số phụ nằm ngoài phạm vi, lỗi 9 ”Bật lên trong khi cố gắng làm như vậy.
Nguyên nhân nào gây ra lỗi "Chỉ số phụ nằm ngoài phạm vi" trong VBA?
Sau khi nhận được nhiều báo cáo từ nhiều người dùng, chúng tôi đã quyết định điều tra vấn đề và đưa ra một loạt giải pháp để khắc phục hoàn toàn vấn đề này. Ngoài ra, chúng tôi đã xem xét các lý do mà nó được kích hoạt và liệt kê chúng như sau.
- Phần tử không tồn tại: Trong một số trường hợp, có thể bạn đã tham chiếu đến một phần tử trong lệnh không tồn tại. Có thể chỉ số con lớn hơn hoặc nhỏ hơn phạm vi của chỉ số con có thể có hoặc thứ nguyên có thể chưa được gán cho mảng tại thời điểm này trong ứng dụng.
- Phần tử không xác định: Có thể bạn không xác định được số phần tử trong mã của mình, điều quan trọng là số phần tử trong một mảng phải được xác định bằng cách sử dụng lệnh “Dim” hoặc “ReDim”.
- Thành viên Bộ sưu tập Không chính xác: Trong một số trường hợp, người dùng có thể đã tham chiếu đến một thành viên bộ sưu tập không tồn tại. Nếu một tham chiếu không chính xác được thực hiện đối với thành viên bộ sưu tập, lỗi này có thể được kích hoạt.
- Tập lệnh viết tắt: Có thể là bạn đã sử dụng một dạng viết tắt của chỉ số con và nó đã chỉ định một cách ngầm định một phần tử không hợp lệ. Điều quan trọng là sử dụng tên khóa hợp lệ.
Bây giờ bạn đã hiểu cơ bản về bản chất của vấn đề, chúng ta sẽ chuyển sang các giải pháp. Đảm bảo thực hiện những điều này theo thứ tự cụ thể mà chúng được trình bày để tránh xung đột.
Giải pháp 1:Kiểm tra Mảng
Có thể bạn đã xác định một giá trị không chính xác cho phần tử Mảng. Do đó, bạn nên kiểm tra kỹ giá trị mà bạn đã xác định cho phần tử Mảng và đảm bảo rằng đó là giá trị chính xác. Ngoài ra, hãy đảm bảo rằng bạn kiểm tra khai báo của mảng và xác minh giới hạn trên và giới hạn dưới. Nếu các mảng đã được tạo phiên bản lại, hãy đảm bảo sử dụng LBound và UBound chức năng điều kiện truy cập. Kiểm tra chính tả của tên Biến nếu chỉ mục là một biến.
Giải pháp 2:Chỉ định số phần tử
Trong một số trường hợp, có thể bạn chưa xác định số lượng phần tử trong mã của mình do lỗi đang được kích hoạt. Bạn nên chỉ định số phần tử trong mảng bằng cách sử dụng Dim hoặc ReDim các chức năng.
Giải pháp 3:Thay đổi cấu trúc
Lỗi này thường được kích hoạt khi người dùng chỉ định một thành viên bộ sưu tập không chính xác hoặc không tồn tại. Do đó, thay vì chỉ định các phần tử chỉ mục, bạn nên tiếp cận với “ Đối với từng… Tiếp theo ”Cấu trúc.
Giải pháp 4:Kiểm tra Tên khóa và Chỉ mục
Trong một số trường hợp, có thể bạn đã sử dụng dạng viết tắt của chỉ số con và nó chỉ định một phần tử không hợp lệ. Do đó, bạn nên sử dụng khóa hợp lệ tên và chỉ mục cho bộ sưu tập.