Kā novērst kļūdu “Subscript Out of Range” Visual Basic for Applications?



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

Visual Basic for Applications (VBA) ir Microsoft izstrādātās Visual Basic programmēšanas valodas ieviešana. VBA var izmantot UDF iespējošanai, uzdevumu automatizēšanai un piekļuvei WinAPI, izmantojot DLL. Tomēr pavisam nesen ir saņemts daudz ziņojumu, kur lietotāji nespēj izpildīt noteiktas komandas un “ Apakšraksts ārpus diapazona, 9. kļūda ”Uznirst, mēģinot to izdarīt.



Kļūda abonenta diapazonā



Kas izraisa kļūdu “Subscript Out of Range” VBA?

Pēc vairāku lietotāju daudzu ziņojumu saņemšanas mēs nolēmām izpētīt problēmu un izstrādājām risinājumu kopumu, lai to pilnībā novērstu. Mēs arī izpētījām iemeslus, kuru dēļ tas tiek aktivizēts, un uzskaitījām tos šādi.



  • Neeksistējošs elements: Dažos gadījumos iespējams, ka komandā esat norādījis elementu, kas nepastāv. Iespējams, ka apakšindekss ir vai nu lielāks, vai mazāks par iespējamo abonentu diapazonu, vai izmēri var nebūt piešķirti masīvam šajā lietojumprogrammas punktā.
  • Nedefinēti elementi: Iespējams, ka kodā neesat identificējis elementu skaitu, ir svarīgi, lai masīvā elementu skaits tiktu noteikts, izmantojot komandas “Dim” vai “ReDim”.
  • Nepareizs kolekcijas dalībnieks: Dažos gadījumos lietotājs, iespējams, atsaucās uz kolekcijas dalībnieku, kas neeksistē. Ja tiek veikta nepareiza atsauce uz kolekcijas dalībnieku, šī kļūda var tikt aktivizēta.
  • Stenogrāfijas skripts: Iespējams, ka esat izmantojis apakšraksta stenogrāfijas formu un tas netieši norādījis nederīgu elementu. Ir svarīgi izmantot derīgu atslēgas nosaukumu.

Tagad, kad jums ir pamata izpratne par problēmas būtību, mēs virzīsimies uz risinājumiem. Lai izvairītos no konfliktiem, pārliecinieties, vai esat tos izpildījis noteiktā secībā, kādā tie tiek parādīti.

1. risinājums: masīvu pārbaude

Iespējams, ka masīva elementam esat definējis nepareizu vērtību. Tāpēc ieteicams vēlreiz pārbaudīt masīva elementam noteikto vērtību un pārliecināties, vai tā ir pareiza. Pārliecinieties arī, ka esat pārbaudījis masīva deklarāciju un pārbaudīt augšējā un apakšējā robeža. Ja masīvi ir pārveidoti, noteikti izmantojiet LSaistīts un UBound funkcijas piekļuves nosacījumiem. Pārbaudiet mainīgā nosaukuma pareizrakstību, ja indekss ir mainīgs.

Masīvs VBA Excel



2. risinājums: Norādiet elementu skaitu

Dažos gadījumos iespējams, ka jūs savā kodā neesat definējis elementu skaitu, kuru dēļ tiek aktivizēta kļūda. Ieteicams masīvā norādīt elementu skaitu, izmantojot Nav vai ReDim funkcijas.

Izmantojot Dim un ReDim, norādiet elementu skaitu

3. risinājums: Konstrukcijas maiņa

Šī kļūda parasti tiek aktivizēta, ja lietotājs norāda nepareizu vai neesošu kolekcijas dalībnieku. Tāpēc, tā vietā, lai norādītu indeksa elementus, ieteicams vērsties ar “ Katram ... Tālāk ”Konstruēt.

Izmantojot “Katram… Nākamais” konstrukciju

4. risinājums: Keyname un Index pārbaude

Dažos gadījumos, iespējams, esat izmantojis apakšraksta stenogrāfijas formu, un tas norāda nederīgu elementu. Tāpēc ieteicams izmantot a derīga atslēga nosaukums un indekss kolekcijai.

Derīga atslēgas nosaukuma izmantošana

2 minūtes lasīts