Paano Ayusin ang Error na 'Subscript Out of Range' sa Visual Basic para sa Mga Aplikasyon?



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Ang Visual Basic para sa Mga Aplikasyon (VBA) ay isang pagpapatupad ng Visual Basic na wika ng programa na binuo ng Microsoft. Maaaring magamit ang VBA para sa pagpapagana ng mga UDF, pag-automate ng mga gawain at para sa pag-access sa WinAPI sa pamamagitan ng mga DLL. Gayunpaman, kamakailan lamang, maraming mga ulat ang darating kung saan ang mga gumagamit ay hindi makapagpatupad ng ilang mga utos at isang ' Subscript Out of Range, Error 9 ”Pops up habang sinusubukang gawin ito.



Error sa labas ng saklaw



Ano ang Sanhi ng Error na 'Subscript Out of Range' sa VBA?

Matapos makatanggap ng maraming mga ulat mula sa maraming mga gumagamit, nagpasya kaming siyasatin ang isyu at gumawa ng isang hanay ng mga solusyon upang maayos itong ganap. Gayundin, tiningnan namin ang mga dahilan dahil kung saan ito ay na-trigger at nakalista ang mga ito bilang mga sumusunod.



  • Walang Sangkap na Elemento: Sa ilang mga kaso, posible na maaari kang mag-refer ng isang elemento sa utos na wala. Posibleng ang subskrip ay alinman sa mas malaki o mas maliit kaysa sa saklaw ng mga posibleng mga subscripts o sukat na maaaring hindi itinalaga sa array sa puntong ito ng application.
  • Hindi Natukoy na Mga Elemento: Posibleng hindi mo nakilala ang bilang ng mga elemento sa iyong code, mahalaga na ang bilang ng mga elemento sa isang array ay tinukoy sa pamamagitan ng paggamit ng mga utos na 'Dim' o 'ReDim'.
  • Maling Miyembro ng Koleksyon: Sa ilang mga kaso, maaaring sumangguni ang gumagamit sa isang miyembro ng koleksyon na wala. Kung ang isang maling sanggunian ay ginawa patungo sa miyembro ng koleksyon, maaaring mag-trigger ang error na ito.
  • Shorthand Script: Posibleng nagamit mo ang isang maikling paraan ng subscript at implicit na tinukoy nito ang isang elemento na wasto. Mahalagang gumamit ng wastong key name.

Ngayon na mayroon kang isang pangunahing pag-unawa sa likas na katangian ng problema, magpapatuloy kami patungo sa mga solusyon. Tiyaking ipatupad ang mga ito sa tiyak na pagkakasunud-sunod kung saan ipinakita ang mga ito upang maiwasan ang hidwaan.

Solusyon 1: Pagsuri sa Mga Aray

Posibleng natukoy mo ang isang maling halaga para sa elemento ng Array. Samakatuwid, inirerekumenda na i-double check ang halagang natukoy mo para sa elemento ng Array at tiyakin na ito ang tama. Gayundin, tiyakin na suriin mo ang deklarasyon ng array at patunayan ang itaas at ang mas mababang mga hangganan. Kung ang mga array ay nai-redimension, siguraduhing gamitin ang LBound at UBound pagpapaandar sa kundisyon ng mga pag-access. Suriin ang spelling ng pangalan ng Variable kung ang index ay isang variable.

Array sa VBA Excel



Solusyon 2: Pagtukoy ng Bilang ng Mga Elemento

Sa ilang mga kaso, posible na maaaring hindi mo natukoy ang bilang ng mga elemento sa iyong code dahil sa kung saan nag-trigger ang error. Inirerekumenda na tukuyin mo ang bilang ng mga elemento sa array gamit ang Wala o ReDim pagpapaandar

Paggamit ng Dim at ReDim upang tukuyin ang bilang ng mga elemento

Solusyon 3: Pagbabago ng Pagbuo

Ang error na ito ay karaniwang nai-trigger kapag tinukoy ng gumagamit ang isang hindi tama o hindi umiiral na miyembro ng koleksyon. Samakatuwid, sa halip na tukuyin ang mga elemento ng index, inirerekumenda na lumapit ka sa ' Para sa bawat… Susunod ”Buuin.

Paggamit ng 'Para sa Bawat… Susunod' na pagbuo

Solusyon 4: Sinusuri ang Keyname at Index

Sa ilang mga kaso, posible na maaaring gumamit ka ng isang maikling form ng subscript at tumutukoy ito ng isang hindi wastong elemento. Samakatuwid, inirerekumenda na gumamit ka ng a wastong susi pangalan at index para sa koleksyon.

Paggamit ng isang Valid na Keyname

2 minuto basahin