Visual Basic za aplikacije (VBA) implementacija je programskog jezika Visual Basic koji je razvio Microsoft. VBA se može koristiti za omogućavanje UDF-ova, automatizaciju zadataka i za pristup WinAPI-u putem DLL-ova. Međutim, nedavno je stiglo puno izvješća u kojima korisnici nisu u stanju izvršiti određene naredbe i ' Pretplata izvan dometa, pogreška 9 ”Iskače dok to pokušavaš učiniti.
Pogreška indeksa izvan dosega
Što uzrokuje pogrešku 'Subscript out of range' u VBA?
Nakon što smo primili brojna izvješća od više korisnika, odlučili smo istražiti problem i osmislili smo niz rješenja kako bismo ga u potpunosti riješili. Također, ispitali smo razloge zbog kojih se to pokreće i popisali ih kako slijedi.
- Nepostojeći element: U nekim je slučajevima moguće da ste u naredbi možda naveli element koji ne postoji. Moguće je da je indeks veći ili manji od raspona mogućih indeksa ili dimenzija možda nisu dodijeljene nizu u ovom trenutku u aplikaciji.
- Nedefinirani elementi: Moguće je da niste identificirali broj elemenata u svom kodu, važno je da se broj elemenata u polju definira pomoću naredbi 'Dim' ili 'ReDim'.
- Pogrešan član sakupljanja: U nekim je slučajevima korisnik možda uputio člana kolekcije koji ne postoji. Ako se pogrešno uputi na člana kolekcije, možda će se pokrenuti ova pogreška.
- Stenografska skripta: Moguće je da ste koristili stenografski oblik indeksa i implicitno je odredio nevaljani element. Važno je koristiti valjani naziv ključa.
Sad kad ste osnovno razumjeli prirodu problema, krenut ćemo prema rješenjima. Obavezno ih primijenite u određenom redoslijedu u kojem su predstavljeni kako biste izbjegli sukob.
Rješenje 1: Provjera nizova
Moguće je da ste definirali netočnu vrijednost za element Array. Stoga se preporučuje da ponovno provjerite vrijednost koju ste definirali za element Array i provjerite je li ispravna. Također provjerite jeste li provjerili deklaraciju niza i provjeriti gornja i donja granica. Ako su nizovi preoblikovani, obavezno upotrijebite LBound i UBound funkcije za uvjetovanje pristupa. Provjerite pravopis imena varijable ako je indeks varijabla.
Niz u VBA Excelu
Rješenje 2: Određivanje broja elemenata
U nekim je slučajevima moguće da niste definirali broj elemenata u kodu zbog kojih se pokreće pogreška. Preporučuje se da odredite broj elemenata u polju pomoću Nijedna ili ReDim funkcije.
Korištenje Dim i ReDim za određivanje broja elemenata
Rješenje 3: Promjena konstrukcije
Ova se pogreška obično pokreće kada korisnik navede netočan ili nepostojeći član zbirke. Stoga, umjesto navođenja elemenata indeksa, preporučuje se da pristupite s ' Za svaku ... Sljedeću ”Konstruirati.
Korištenje konstrukcije 'Za svaki ... sljedeći'
Rješenje 4: Provjera imena ključa i indeksa
U nekim je slučajevima moguće da ste koristili stenografski oblik indeksa i on navodi nevažeći element. Stoga se preporučuje korištenje a važeći ključ Ime i indeks za kolekciju.
Upotreba valjanog naziva ključa
2 minute čitanja