Kako ispraviti pogrešku 'Subscript Out of Range' u programu Visual Basic za aplikacije?



Isprobajte Naš Instrument Za Uklanjanje Problema

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