Làm thế nào để khắc phục lỗi 'chỉ số nằm ngoài phạm vi' trong Visual Basic cho ứng dụng?



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

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 các tệp DLL. Tuy nhiên, gần đây, rất nhiều báo cáo về việc người dùng không thể thực hiện một số 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.



Lỗi chỉ số nằm ngoài phạm vi



Nguyên nhân nào gây ra lỗi 'Chỉ số 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. 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 điểm này trong ứng dụng.
  • Các 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 đượ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 tốc ký: Có thể 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ể là 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à kiểm chứng 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 LBoundUBound 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.

Mảng trong VBA Excel



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 đượ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 không ai hoặc là ReDim chức năng.

Sử dụng Dim và ReDim để chỉ định số phần tử

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 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 mỗi… Tiếp theo ' xây dựng.

Sử dụng cấu trúc “Cho từng… Tiếp theo”

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 một 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 chìa khóa hợp lệ Tênmục lục cho bộ sưu tập.

Sử dụng tên khóa hợp lệ

2 phút đọc