Cuprins
În acest articol, vă vom arăta motivele pentru care " Subscript în afara intervalului " eroare în Excel VBA și cum să le rezolvăm.
Descărcați modelul de practică
Puteți descărca gratuit modelul Excel de practică de aici.
Eroare de subscript în afara intervalului în VBA.xlsm
Ce este eroarea Subscript Out of Range în VBA?
VBA Subscript în afara intervalului eroarea apare atunci când încercăm să accesăm un membru inexistent sau o colecție de matrice inexistentă în Excel. Aceasta este o eroare " Eroare în timpul execuției 9 " de tip eroare în VBA codificarea în Excel.
De obicei, eroarea arată astfel,
5 Motive și soluții pentru eroarea Subscript Out of Range în VBA
În această secțiune se vor discuta cele mai frecvente 5 motive de apariție a Subscript în afara intervalului eroare și care sunt soluțiile la aceasta.
1. Eroare de subscript în afara intervalului în VBA pentru un registru de lucru inexistent
Atunci când încercați să accesați un registru de lucru Excel care nu este deschis, veți primi un mesaj " Subscript în afara intervalului " eroare.
Dacă încercăm să Rulați codul prezentat mai sus, vom primi o eroare deoarece nu există un registru de lucru Excel numit " Vânzări ", care este deschis în prezent.
Soluție
Pentru a rezolva această eroare, deschideți mai întâi registrul de lucru Excel pe care doriți să îl accesați și apoi rulați macroul.
2. Eroare de subscript în afara intervalului în VBA pentru o foaie de lucru inexistentă
Atunci când încercați să accesați o foaie de lucru care nu există în registrul de lucru Excel, atunci veți primi și mesajul " Subscript în afara intervalului " eroare în VBA .
Dacă încercăm să executăm codul prezentat mai sus, vom primi o eroare deoarece nu există nici un " Foaie2 ", disponibilă în caietul nostru de lucru.
Soluție
Pentru a rezolva această eroare, trebuie să aveți foaia Excel pe care doriți să o accesați în registrul de lucru care rulează și apoi să executați macroul.
3. Eroare de subscript în afara intervalului în VBA pentru elemente de tablă nedefinite
Dacă nu definiți lungimea unui Array dinamic cu cuvântul DIM sau REDIM în Excel VBA , atunci veți obține " Subscript în afara intervalului " eroare.
În codul de mai sus, am declarat Array în dimensiunea de la 5 la 10, dar am făcut referire la un subscript de indice 3, care este mai mic decât 5.
Soluție
Pentru a rezolva această problemă, declarați indexul între dimensiunile Array.
Această bucată de cod funcționează perfect, deoarece aici ne-am referit la subscriptul indexului 5, care se află în intervalul de la 5 la 10.
4. Eroare de subscript în afara intervalului în VBA pentru colecție/array nevalabilă
Atunci când indicele este mai mare sau mai mic decât intervalul de indici posibili, atunci se aplică Subscript în afara intervalului se va produce o eroare.
Uitați-vă la exemplul de mai sus, am declarat variabila ca fiind un Array, dar în loc să atribuim un punct de început și un punct de sfârșit, am atribuit direct primul array cu valoarea 20.
Soluție
Pentru a rezolva această problemă, trebuie să atribuim lungimea matricei cu un punct de început și de sfârșit.
Acest cod nu generează nicio eroare, deoarece acum am declarat Array cu un punct de început de 1 și un punct de sfârșit de 5.
5. Eroare de subscript out of range în VBA pentru scriptul Shorthand
Dacă folosiți o prescurtare dintr-un subscript și acesta se referă la un element invalid, atunci veți primi mesajul " Subscript în afara intervalului " eroare în Excel VBA De exemplu, [A2] este abrevierea pentru ActiveSheet.Range(A2) .
Soluție
Pentru a remedia acest lucru, trebuie să folosiți un fișier valid numele cheii și index pentru colecție. În loc de a scrie ActiveSheet.Range(A2) , puteți scrie pur și simplu [ A2 ].
Avantajul Excel Subscript Out of Range Error în VBA
- VBA Subscript în afara intervalului eroare sau " Eroare în timpul execuției 9 " este foarte utilă pentru a preciza poziția erorii în care a apărut în VBA cod.
- Această eroare îi ajută pe utilizatori să găsească tipul de eroare, astfel încât să poată verifica și găsi soluții în funcție de codul de eroare.
Lucruri de reținut
- Deoarece această eroare compilează fiecare pas de cod pentru a ne indica exact pentru ce parte a codului trebuie să acționăm, este mai bine să compilați fiecare linie de cod una câte una, apăsând pe F8 dacă aveți o linie de cod foarte mare.
Concluzie
Acest articol ți-a arătat motivele și soluțiile de Excel Subscript în afara intervalului eroare în VBA. Sper că acest articol v-a fost foarte benefic. Nu ezitați să îmi adresați orice întrebare referitoare la acest subiect.