Sadržaj
U ovom članku ćemo vam pokazati razloge za grešku “ Subscript out of Range ” u programu Excel VBA i kako ih riješiti.
Preuzmite predložak za vježbu
Ovdje možete preuzeti besplatni Excel predložak za vježbu.
Greška podskripta izvan dometa u VBA.xlsm
Šta je greška indeksa van dometa u VBA?
VBA subscript izvan opsega greška se javlja kada pokušamo pristupiti bilo kojem nepostojećem članu ili nepostojećoj kolekciji niza u Excelu. Ovo je " Run-Time Error 9 " tip greške u VBA kodiranju u Excelu.
Greška obično izgleda ovako,
5 razloga sa rješenjima greške indeksnog indeksa izvan opsega u VBA
Ovaj odjeljak će raspravljati o 5 najčešćih razloga za pojavu Greška indeksa izvan opsega i koja su rješenja za nju.
1. Greška indeksa van dometa u VBA za nepostojeću radnu svesku
Kada pokušate da pristupite Excel radnoj svesci koja nije otvorena, dobićete grešku “ Subscript van opsega ”.
Ako pokušamo Pokrenuti kod prikazan gore, dobit ćemo grešku jer ne postoji Excel radna knjiga pod nazivom “ Sales ” koja je trenutno otvorena.
Rješenje
Da biste riješili ovu grešku, prvo otvorite Excel radnu knjigu kojoj želite pristupiti, a zatim pokrenite makro.
2. Greška ispod dometa u VBA za nepostojećeRadni list
Kada pokušate pristupiti radnom listu koji ne postoji u Excel radnoj knjizi tada ćete također dobiti grešku “ Subscript out of range ” u VBA .
Ako pokušamo da pokrenemo kod prikazan gore, dobićemo grešku jer ne postoji “ Sheet2 ” radni list dostupan u našoj radnoj knjizi.
Rješenje
Da biste riješili ovu grešku, morate imati Excel list kojem želite pristupiti u radnoj knjizi koja radi i zatim pokrenite makro.
3. Greška indeksa izvan opsega u VBA za nedefinirane elemente niza
Ako ne definirate dužinu dinamičkog niza pomoću riječ DIM ili REDIM u Excelu VBA , tada ćete dobiti grešku “ Subscript out of range ”.
U gornjem kodu smo deklarirali niz u dimenziji od 5 do 10, ali smo se pozvali na indeks indeksa 3, koji je manji od 5.
Rješenje
Da biste ovo riješili, deklarirajte indeks između dimenzije niza.
Ovaj dio e koda radi savršeno dobro jer se ovdje pozivamo na indeks indeksa 5, koji se nalazi unutar raspona od 5 do 10.
4. Greška ispod dometa u VBA za nevažeću kolekciju/ Niz
Kada je indeks veći ili manji od raspona mogućeg indeksa, tada će se pojaviti greška Subscript izvan raspona .
Pogledajte gornji primjer, mideklarirali varijablu kao niz, ali umjesto dodjeljivanja početne i krajnje točke, mi smo direktno dodijelili prvi niz s vrijednošću 20.
Rješenje
Za riješimo ovaj problem, moramo dodijeliti dužinu niza sa početnom i završnom tačkom.
Ovaj kod ne daje nikakvu grešku jer smo sada deklarirali niz sa početnom tačkom 1 i završnom tačkom 5.
5. Greška ispod dometa u VBA za stenografsku skriptu
Ako koristite stenografiju iz subscript i odnosi se na nevažeći element onda ćete dobiti grešku “ Subscript out of range ” u Excelu VBA . Na primjer, [A2] je skraćenica za ActiveSheet.Range(A2) .
Rješenje
Za popravak ovo, morate koristiti važeće ime ključa i index za kolekciju. Umjesto da pišete ActiveSheet.Range(A2) , možete samo napisati [ A2 ].
Prednost Excelove greške izvan opsega u VBA
- VBA indeks van opsega greška ili “ Run-Time Error 9 ” je zaista koristan u određivanju pozicije greške na kojoj se dogodila u VBA kodu.
- Ova greška pomaže korisnicima da pronađu vrstu greške kako bi mogli provjeriti i pronaći rješenja prema kodu greške.
Stvari koje treba zapamtiti
- Kako ova greška kompajlira svaki korak koda kako bi nas usmjerila tačno koji diokod za koji zapravo treba da preduzmemo radnje, tako da je bolje kompajlirati svaki red koda jedan po jedan pritiskom na tipku F8 ako imate veliki red koda.
Zaključak
Ovaj članak vam je pokazao razloge i rješenja greške Excel Subscript out of range u VBA. Nadam se da vam je ovaj članak bio od velike koristi. Slobodno postavite bilo kakva pitanja u vezi sa temom.