Bagaimana Memperbaiki Ralat ‘Subscript Out of Range’ dalam Visual Basic untuk Aplikasi?



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Visual Basic for Applications (VBA) adalah pelaksanaan bahasa pengaturcaraan Visual Basic yang dikembangkan oleh Microsoft. VBA dapat digunakan untuk mengaktifkan UDF, mengotomatisasi tugas dan untuk mengakses WinAPI melalui DLL. Namun, baru-baru ini, banyak laporan telah masuk di mana pengguna tidak dapat melaksanakan perintah tertentu dan ' Langganan Di Luar Jangkauan, Ralat 9 'Muncul semasa cuba melakukannya.



Langganan di luar ralat



Apa yang Menyebabkan Kesalahan 'Langganan Di Luar Jangkauan' di VBA?

Setelah menerima banyak laporan dari beberapa pengguna, kami memutuskan untuk menyiasat masalah ini dan merancang satu set penyelesaian untuk menyelesaikannya sepenuhnya. Kami juga melihat sebab-sebab mengapa ia dicetuskan dan menyenaraikannya seperti berikut.



  • Elemen Tidak Ada: Dalam beberapa kes, ada kemungkinan anda merujuk elemen dalam perintah yang tidak ada. Ada kemungkinan bahawa langganan lebih besar atau lebih kecil daripada rentang kemungkinan langganan atau dimensi mungkin tidak diberikan kepada array pada saat ini dalam aplikasi.
  • Unsur Tidak Ditentukan: Ada kemungkinan bahawa anda tidak mengenal pasti bilangan elemen dalam kod anda, adalah penting bahawa bilangan elemen dalam array ditentukan dengan menggunakan perintah 'Dim' atau 'ReDim'.
  • Ahli Koleksi Tidak Betul: Dalam beberapa kes, pengguna mungkin telah merujuk anggota koleksi yang tidak ada. Sekiranya rujukan yang salah dibuat terhadap anggota pengumpulan, kesalahan ini mungkin dicetuskan.
  • Skrip Shorthand: Ada kemungkinan bahawa anda telah menggunakan bentuk langganan singkat dan secara tidak langsung menyatakan elemen yang tidak sah. Penting untuk menggunakan nama kunci yang sah.

Setelah anda memahami asas mengenai masalah ini, kami akan terus mencari jalan keluarnya. Pastikan untuk menerapkannya dalam urutan khusus di mana ia disajikan untuk mengelakkan konflik.

Penyelesaian 1: Memeriksa Susunan

Ada kemungkinan anda telah menentukan nilai yang tidak betul untuk elemen Array. Oleh itu, disarankan untuk memeriksa semula nilai yang telah anda tetapkan untuk elemen Array dan memastikan bahawa itu adalah nilai yang betul. Juga, pastikan anda menyemak deklarasi array dan mengesahkan batas atas dan bawah. Sekiranya tatasusunan telah dikurangkan semula, pastikan untuk menggunakan TERHAD dan Di Bawah berfungsi untuk mengakses keadaan. Periksa ejaan nama Pembolehubah jika indeks adalah pemboleh ubah.

Array dalam VBA Excel



Penyelesaian 2: Menentukan Bilangan Unsur

Dalam beberapa kes, ada kemungkinan anda tidak menentukan jumlah elemen dalam kod anda kerana kesalahan tersebut dicetuskan. Sebaiknya anda menentukan bilangan elemen dalam larik menggunakan Tiada atau ReDim fungsi.

Menggunakan Dim dan ReDim untuk menentukan bilangan elemen

Penyelesaian 3: Mengubah Konstruk

Kesalahan ini biasanya dicetuskan ketika pengguna menentukan anggota koleksi yang salah atau tidak ada. Oleh itu, daripada menentukan elemen indeks, disarankan agar anda menghampiri ' Untuk Setiap… Seterusnya 'Bina.

Menggunakan konstruk 'Untuk Setiap ... Seterusnya'

Penyelesaian 4: Memeriksa Nama Utama dan Indeks

Dalam beberapa kes, ada kemungkinan anda menggunakan bentuk langganan langganan dan menentukan elemen yang tidak sah. Oleh itu, disarankan agar anda menggunakan a kunci yang sah nama dan indeks untuk koleksi.

Menggunakan Nama Kunci yang Sah

2 minit membaca