Obsah
V tomto článku vám ukážeme dôvody pre " Odpis mimo rozsahu " chyba v programe Excel VBA a ako ich vyriešiť.
Stiahnite si šablónu pre prax
Bezplatnú cvičnú šablónu Excel si môžete stiahnuť odtiaľto.
Chyba subskriptu mimo rozsahu v programe VBA.xlsm
Čo je chyba subskriptu mimo rozsahu vo VBA?
Odpis VBA mimo rozsahu chyba nastane, keď sa pokúsime získať prístup k neexistujúcemu členovi alebo neexistujúcej kolekcii polí v Exceli. Ide o chybu " Chyba v čase behu 9 " typ chyby v VBA kódovanie v programe Excel.
Chyba zvyčajne vyzerá takto,
5 dôvodov s riešením chyby subskriptu mimo rozsahu vo VBA
V tejto časti sa bude diskutovať o 5 najčastejších dôvodoch výskytu Odpis mimo rozsahu a aké sú jej riešenia.
1. Chyba subskripcie mimo rozsahu vo VBA pre neexistujúci zošit
Pri pokuse o prístup k zošitu programu Excel, ktorý nie je otvorený, sa zobrazí hlásenie " Odpis mimo rozsahu " chyba.
Ak sa pokúsime Spustiť kód uvedený vyššie, dostaneme chybu, pretože neexistuje žiadny zošit Excelu s názvom " Predaj ", ktorá je v súčasnosti otvorená.
Riešenie
Ak chcete túto chybu vyriešiť, najprv otvorte zošit programu Excel, ku ktorému chcete získať prístup, a potom spustite makro.
2. Chyba subskripcie mimo rozsahu vo VBA pre neexistujúci pracovný hárok
Keď sa pokúsite získať prístup k pracovnému listu, ktorý v zošite programu Excel neexistuje, zobrazí sa tiež hlásenie " Odpis mimo rozsahu " chyba v VBA .
Ak sa pokúsime spustiť vyššie uvedený kód, dostaneme chybu, pretože neexistuje " List2 " pracovný list, ktorý je k dispozícii v našom pracovnom zošite.
Riešenie
Ak chcete túto chybu vyriešiť, musíte mať v spustenom zošite Excelu hárok, ku ktorému chcete získať prístup, a potom spustiť makro.
3. Chyba indexu mimo rozsahu vo VBA pre nedefinované prvky poľa
Ak nedefinujete dĺžku dynamického poľa slovom DIM alebo REDIM v programe Excel VBA , potom sa zobrazí " Odpis mimo rozsahu " chyba.
Vo vyššie uvedenom kóde sme deklarovali pole v dimenzii od 5 do 10, ale odkazovali sme na index 3, ktorý je nižší ako 5.
Riešenie
Ak to chcete vyriešiť, deklarujte index medzi rozmermi poľa.
Táto časť kódu funguje úplne v poriadku, pretože sme sa tu odvolali na index 5, ktorý sa nachádza v rozsahu 5 až 10.
4. Chyba indexu mimo rozsahu vo VBA pre neplatnú kolekciu/ pole
Ak je dolný index väčší alebo menší ako rozsah možných dolných indexov, potom sa Odpis mimo rozsahu dôjde k chybe.
Pozrite sa na vyššie uvedený príklad, premennú sme deklarovali ako pole, ale namiesto priradenia počiatočného a koncového bodu sme priamo priradili prvé pole s hodnotou 20.
Riešenie
Aby sme tento problém vyriešili, musíme priradiť dĺžku poľa s počiatočným a koncovým bodom.
Tento kód nevyvolá žiadnu chybu, pretože teraz sme deklarovali pole s počiatočným bodom 1 a koncovým bodom 5.
5. Chyba subskriptu mimo rozsahu vo VBA pre skrátený skript
Ak použijete skratku z indexu a tá odkazuje na neplatný prvok, zobrazí sa hlásenie " Odpis mimo rozsahu " chyba v programe Excel VBA Napríklad, [A2] je skratka pre ActiveSheet.Range(A2) .
Riešenie
Ak to chcete opraviť, musíte použiť platný názov kľúča a index pre zbierku. Namiesto zápisu ActiveSheet.Range(A2) , môžete jednoducho napísať [ A2 ].
Výhoda chyby indexu Excel mimo rozsahu vo VBA
- Odpis VBA mimo rozsahu chyba alebo " Chyba v čase behu 9 " je skutočne užitočná pri špecifikácii pozície chyby, kde sa vyskytla v VBA kód.
- Táto chyba pomáha používateľom zistiť typ chyby, aby mohli skontrolovať a nájsť riešenia podľa kódu chyby.
Čo si treba zapamätať
- Keďže táto chyba kompiluje každý krok kódu, aby nás presne nasmerovala, pre ktorú časť kódu musíme skutočne vykonať akcie, preto je lepšie kompilovať každý riadok kódu postupne stlačením F8 ak máte veľký riadok kódu.
Záver
Tento článok vám ukázal dôvody a riešenia aplikácie Excel Odpis mimo rozsahu chyba v VBA. Dúfam, že tento článok bol pre vás veľmi prínosný. Neváhajte a položte akékoľvek otázky týkajúce sa tejto témy.