Lỗi Subscript Out of Range trong VBA (với 5 giải pháp)

  • Chia Sẻ Cái Này
Hugh West

Trong bài viết này, chúng tôi sẽ chỉ cho bạn các nguyên nhân gây ra lỗi “ Subscript out of Range ” trong Excel VBA và cách giải quyết các lỗi đó.

Tải xuống mẫu thực hành

Bạn có thể tải xuống mẫu Excel thực hành miễn phí từ đây.

Lỗi chỉ số ngoài phạm vi trong VBA.xlsm

Lỗi Subscript Out of Range trong VBA là gì?

Lỗi chỉ số VBA nằm ngoài phạm vi xảy ra khi chúng tôi cố gắng truy cập bất kỳ thành viên không tồn tại hoặc bộ sưu tập mảng không tồn tại nào trong Excel. Đây là loại lỗi “ Lỗi thời gian chạy 9 ” trong mã hóa VBA trong Excel.

Lỗi này thường có dạng như sau,

5 lý do dẫn đến giải pháp cho lỗi Subscript Out of Range trong VBA

Phần này sẽ thảo luận về 5 lý do phổ biến nhất dẫn đến sự cố Lỗi Subscript out of range và các giải pháp cho nó.

1. Lỗi chỉ số ngoài phạm vi trong VBA cho sổ làm việc không tồn tại

Khi bạn cố gắng truy cập sổ làm việc Excel không mở, bạn sẽ gặp lỗi “ Chỉ số ngoài phạm vi ”.

Nếu cố gắng Chạy đoạn mã hiển thị ở trên, chúng tôi sẽ gặp lỗi do không có sổ làm việc Excel có tên “ Bán hàng ” hiện đang mở.

Giải pháp

Để khắc phục lỗi này, trước tiên hãy mở sổ làm việc Excel mà bạn muốn truy cập rồi Chạy vĩ mô.

2. Lỗi Subscript Out of Range trong VBA không tồn tạiTrang tính

Khi bạn cố gắng truy cập một trang tính không tồn tại trong sổ làm việc Excel thì bạn cũng sẽ gặp lỗi “ Chỉ số dưới nằm ngoài phạm vi ” trong VBA .

Nếu chúng tôi cố chạy đoạn mã hiển thị ở trên, chúng tôi sẽ gặp lỗi vì không có “ Sheet2 ” có sẵn trong sổ làm việc của chúng tôi.

Giải pháp

Để giải quyết lỗi này, bạn cần có trang tính Excel mà bạn muốn truy cập trong sổ làm việc đang chạy và sau đó chạy macro.

3. Lỗi chỉ số ngoài phạm vi trong VBA đối với các phần tử mảng không xác định

Nếu bạn không xác định độ dài của một mảng động bằng từ DIM hoặc REDIM trong Excel VBA , thì bạn sẽ gặp lỗi “ Chỉ số dưới nằm ngoài phạm vi ”.

Trong đoạn mã trên, chúng ta đã khai báo Mảng có thứ nguyên từ 5 đến 10 nhưng tham chiếu đến chỉ số con của chỉ số 3, thấp hơn 5.

Giải pháp

Để giải quyết vấn đề này, hãy khai báo chỉ mục ở giữa kích thước Mảng.

Phần này e của mã hoạt động hoàn toàn tốt vì ở đây chúng tôi đã đề cập đến chỉ số dưới của chỉ mục 5, nằm trong phạm vi từ 5 đến 10.

4. Lỗi chỉ số ngoài phạm vi trong VBA đối với bộ sưu tập không hợp lệ/ Mảng

Khi chỉ số con lớn hơn hoặc nhỏ hơn phạm vi của chỉ số con có thể, thì lỗi Chỉ số con nằm ngoài phạm vi sẽ xảy ra.

Nhìn vào ví dụ trên, chúng tađã khai báo biến là một Mảng, nhưng thay vì gán điểm đầu và điểm cuối, chúng ta đã gán trực tiếp mảng đầu tiên với giá trị 20.

Giải pháp

Để khắc phục sự cố này, chúng tôi cần chỉ định độ dài của mảng với điểm bắt đầu và điểm kết thúc.

Mã này không đưa ra bất kỳ lỗi nào vì bây giờ chúng tôi đã khai báo Mảng với điểm bắt đầu là 1 và điểm kết thúc là 5.

5. Lỗi Chỉ số Ngoài Phạm vi trong VBA cho Tập lệnh Tốc ký

Nếu bạn sử dụng tốc ký từ một chỉ số dưới và nó đề cập đến một phần tử không hợp lệ thì bạn sẽ gặp lỗi “ Chỉ số dưới nằm ngoài phạm vi ” trong Excel VBA . Ví dụ: [A2] là cách viết tắt của ActiveSheet.Range(A2) .

Giải pháp

Cách khắc phục này, bạn phải sử dụng tên khóa chỉ mục hợp lệ cho bộ sưu tập. Thay vì viết ActiveSheet.Range(A2) , bạn chỉ có thể viết [ A2 ].

Lợi thế của lỗi Out of Range Subscript trong VBA

  • Lỗi VBA Subscript out of range hoặc “ Run-Time Error 9 ” thực sự hữu ích trong việc chỉ định vị trí xảy ra lỗi trong mã VBA .
  • Lỗi này giúp người dùng tìm ra loại lỗi để có thể kiểm tra và tìm cách khắc phục theo mã lỗi.

Những điều cần nhớ

  • Vì lỗi này biên dịch từng bước mã để hướng dẫn chúng tôi chính xác phần nào củamã mà chúng ta thực sự cần thực hiện hành động, vì vậy, tốt hơn hết bạn nên biên dịch từng dòng mã một bằng cách nhấn phím F8 nếu bạn có một dòng mã lớn.

Kết luận

Bài viết này cho bạn biết nguyên nhân và giải pháp của lỗi Excel Subscript out of range trong VBA. Tôi hy vọng bài viết này rất hữu ích cho bạn. Vui lòng đặt bất kỳ câu hỏi nào liên quan đến chủ đề này.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.