"Excel" indeksų klaida VBA (su 5 sprendimais)

  • Pasidalinti
Hugh West

Šiame straipsnyje pateiksime jums priežastis, dėl kurių " Priedas iš diapazono " klaida "Excel" programoje VBA ir kaip juos išspręsti.

Atsisiųsti praktikos šabloną

Nemokamą praktinį "Excel" šabloną galite atsisiųsti iš čia.

VBA.xlsm klaida, kai indeksas išeina iš diapazono

Kas yra VBA klaida "Subscript Out of Range Error"?

VBA indeksas "Subscript out of range klaida atsiranda, kai bandome pasiekti bet kurį neegzistuojantį narį arba neegzistuojančią masyvo kolekciją "Excel" programoje. Tai yra " Vykdymo laiko klaida 9 " tipo klaidos VBA kodavimas "Excel" programoje.

Klaida paprastai atrodo taip,

5 priežastys ir sprendimai dėl VBA klaidos "Subscript Out of Range Error

Šiame skyriuje bus aptartos 5 dažniausiai pasitaikančios priežastys, dėl kurių Priedas iš intervalo klaidų ir kokie yra jų sprendimo būdai.

1. Neegzistuojančio sąsiuvinio indeksų klaida VBA programoje

Kai bandote pasiekti neatidarytą "Excel" darbaknygę, gausite " Priedas iš intervalo " klaida.

Jei bandysime Paleisti pirmiau pateiktą kodą, gausime klaidą, nes nėra "Excel" darbaknygės pavadinimu " Pardavimai ", kuris šiuo metu yra atidarytas.

Sprendimas

Norėdami išspręsti šią klaidą, pirmiausia atidarykite "Excel" darbaknygę, kurią norite pasiekti, ir paleiskite makrokomandą.

2. Neegzistuojančio darbalapio VBA klaida, kai indeksas išeina iš diapazono

Kai bandote pasiekti darbalapį, kurio nėra "Excel" darbaknygėje, taip pat gausite " Priedas iš intervalo " klaida VBA .

Jei bandysime paleisti pirmiau pateiktą kodą, gausime klaidą, nes nėra " Lapas2 " darbalapį, kurį galima rasti mūsų darbo knygoje.

Sprendimas

Norėdami išspręsti šią klaidą, turite turėti "Excel" lapą, kurį norite pasiekti, veikiančiame sąsiuvinyje ir tada paleisti makrokomandą.

3. Neapibrėžtų masyvo elementų indeksų klaida VBA programoje "Subscript Out of Range Error

Jei neapibrėšite dinaminio masyvo ilgio žodžiu DIM arba REDIM "Excel" programoje VBA , tada gausite " Priedas iš intervalo " klaida.

Pirmiau pateiktame kode deklaravome masyvo dimensiją nuo 5 iki 10, bet nurodėme indekso 3 indeksą, kuris yra mažesnis nei 5.

Sprendimas

Norėdami tai išspręsti, deklaruokite indeksą tarp masyvo dimensijos.

Ši kodo dalis puikiai veikia, nes čia nurodėme indekso 5 indeksą, kuris yra intervale nuo 5 iki 10.

4. Subscript Out of Range Error in VBA for Invalid Collection/ Array

Kai indeksas yra didesnis arba mažesnis už galimų indeksų intervalą, tada Priedas iš intervalo įvyks klaida.

Pažvelkite į aukščiau pateiktą pavyzdį: kintamąjį deklaravome kaip masyvą, tačiau užuot priskyrę pradžios ir pabaigos tašką, tiesiogiai priskyrėme pirmąjį masyvą, kurio reikšmė yra 20.

Sprendimas

Norėdami išspręsti šią problemą, turime priskirti masyvo ilgį su pradžios ir pabaigos tašku.

Šis kodas nesukelia jokios klaidos, nes dabar deklaravome masyvo pradinį tašką 1 ir galutinį tašką 5.

5. VBA trumpinio scenarijaus klaida, kai indeksas išeina iš diapazono

Jei naudojate sutrumpintą indeksą iš indeksų ir jis nurodo negaliojantį elementą, gausite " Priedas iš intervalo " klaida "Excel" programoje VBA . Pavyzdžiui, [A2] yra trumpinys ActiveSheet.Range(A2) .

Sprendimas

Norėdami tai ištaisyti, turite naudoti galiojantį rakto pavadinimas ir indeksas kolekcijai. Užuot rašę ActiveSheet.Range(A2) , galite tiesiog parašyti [ A2 ].

"Excel" indeksų išvedimo iš diapazono klaidos privalumas VBA

  • VBA indeksas "Subscript out of range klaida arba " Vykdymo laiko klaida 9 " yra tikrai naudinga nurodant klaidos vietą, kurioje ji įvyko. VBA kodas.
  • Ši klaida padeda naudotojams nustatyti klaidos tipą, kad jie galėtų patikrinti ir rasti sprendimus pagal klaidos kodą.

Dalykai, kuriuos reikia prisiminti

  • Kadangi ši klaida kompiliuoja kiekvieną kodo žingsnį, kad tiksliai nurodytų, kurioje kodo dalyje iš tikrųjų turime imtis veiksmų, todėl geriau kompiliuoti kiekvieną kodo eilutę po vieną paspaudžiant F8 klavišą, jei turite didžiulę kodo eilutę.

Išvada

Šis straipsnis parodė jums "Excel" priežastis ir sprendimus Priedas iš intervalo klaida VBA. Tikiuosi, kad šis straipsnis jums buvo labai naudingas. Drąsiai užduokite bet kokius su šia tema susijusius klausimus.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.