Sadržaj
U ovom ćemo vam članku pokazati razloge za pogreš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.
Pogreška indeksa izvan raspona u VBA.xlsm
Što je pogreška indeksa izvan raspona u VBA? Pogreška
VBA indeks izvan raspona javlja se kada pokušamo pristupiti bilo kojem nepostojećem članu ili nepostojećoj zbirci polja u Excelu. Ovo je vrsta pogreške " Run-Time Error 9 " u VBA kodiranju u Excelu.
Pogreška obično izgleda ovako,
5 razloga s rješenjima za pogrešku indeksa izvan raspona u VBA
Ovaj odjeljak govori o 5 najčešćih razloga za pojavu Pogreška indeksa izvan raspona i koja su rješenja za nju.
1. Pogreška indeksa izvan raspona u VBA za nepostojeću radnu knjigu
Kada pokušate pristupiti Excel radnoj knjizi koja nije otvorena, dobit ćete pogrešku " Indeks izvan raspona ".
Ako pokušamo pokrenuti gore prikazani kod, dobit ćemo pogrešku jer ne postoji Excel radna knjiga pod nazivom “ Sales ” koji je trenutno otvoren.
Rješenje
Da biste riješili ovu pogrešku, prvo otvorite Excel radnu knjigu kojoj želite pristupiti, a zatim Run makronaredba.
2. Pogreška indeksa izvan raspona u VBA za nepostojećeRadni list
Kada pokušate pristupiti radnom listu koji ne postoji u Excel radnoj knjizi tada ćete također dobiti pogrešku “ Subscript out of range ” u VBA .
Ako pokušamo pokrenuti gore prikazani kod, dobit ćemo pogrešku jer ne postoji “ Sheet2 ” radni list dostupan u našoj radnoj knjizi.
Rješenje
Da biste riješili ovu pogrešku, morate imati Excel list kojem želite pristupiti u pokrenutoj radnoj knjizi i zatim pokrenite makronaredbu.
3. Pogreška indeksa izvan raspona u VBA za nedefinirane elemente niza
Ako ne definirate duljinu dinamičkog niza s riječi DIM ili REDIM u programu Excel VBA , tada ćete dobiti pogrešku “ Subscript out of range ”.
U gornjem kodu, deklarirali smo niz u dimenziji od 5 do 10, ali smo se referirali na indeks indeksa 3, koji je niži od 5.
Rješenje
Da biste to riješili, deklarirajte indeks između dimenzije polja.
Ovaj komad Koda radi savršeno dobro jer smo se ovdje pozvali na indeks indeksa 5, koji je unutar raspona od 5 do 10.
4. Pogreška indeksa izvan raspona u VBA-u zbog nevažeće zbirke/ Niz
Kada je indeks veći ili manji od raspona mogućih indeksa, pojavit će se pogreška Indeks izvan raspona .
Pogledajte gornji primjer, mideklarirali smo varijablu kao niz, ali umjesto dodjele početne i završne točke, izravno smo prvom nizu dodijelili vrijednost 20.
Rješenje
Za riješite ovaj problem, moramo dodijeliti duljinu niza s početnom i završnom točkom.
Ovaj kod ne daje nikakvu pogrešku jer smo sada deklarirali niz s početnom točkom 1 i završnom točkom 5.
5. Pogreška indeksa izvan raspona u VBA za stenografski skript
Ako koristite stenografiju iz indeks i odnosi se na nevažeći element, dobit ćete pogrešku “ Indeks izvan raspona ” u programu Excel VBA . Na primjer, [A2] je skraćenica za ActiveSheet.Range(A2) .
Rješenje
Za popravak ovo, morate koristiti valjani naziv ključa i indeks za kolekciju. Umjesto da pišete ActiveSheet.Range(A2) , možete samo pisati [ A2 ].
Prednost pogreške Excel Inscript Out of Range u VBA
- VBA indeks izvan raspona pogreška ili “ Run-Time Error 9 ” stvarno je koristan u određivanju položaja pogreške gdje se pojavila u VBA kodu.
- Ova pogreška pomaže korisnicima da pronađu vrstu pogreške kako bi mogli provjeriti i pronaći rješenja prema kodu pogreške.
Stvari koje treba zapamtiti
- Budući da ova pogreška kompilira svaki korak koda kako bi nas točno uputila koji diokod za koji zapravo trebamo poduzeti radnje, stoga je bolje kompajlirati svaku liniju koda jednu po jednu pritiskom na tipku F8 ako imate veliku liniju koda.
Zaključak
Ovaj vam je članak pokazao razloge i rješenja pogreške Excel Subscript out of range u VBA. Nadam se da vam je ovaj članak bio od velike koristi. Slobodno postavite sva pitanja u vezi s temom.