Cum se remediază eroarea „Subscript Out of Range” în Visual Basic pentru aplicații?



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Visual Basic pentru aplicații (VBA) este o implementare a limbajului de programare Visual Basic dezvoltat de Microsoft. VBA poate fi utilizat pentru activarea UDF-urilor, automatizarea sarcinilor și pentru accesarea WinAPI prin DLL-uri. Cu toate acestea, destul de recent, au apărut o mulțime de rapoarte în care utilizatorii nu pot executa anumite comenzi și un „ Indice în afara intervalului, eroare 9 ”Apare în timp ce încercați să faceți acest lucru.



Eroare de subscript în afara intervalului



Ce cauzează eroarea „Subscript Out of Range” în VBA?

După ce am primit numeroase rapoarte de la mai mulți utilizatori, am decis să investigăm problema și am conceput un set de soluții pentru a o remedia complet. De asemenea, am analizat motivele din cauza cărora este declanșat și le-am enumerat după cum urmează.



  • Element inexistent: În unele cazuri, este posibil să fi făcut referire la un element din comandă care nu există. Este posibil ca indicele să fie mai mare sau mai mic decât intervalul posibil de indici sau dimensiuni ar putea să nu fi fost alocate matricei în acest moment al aplicației.
  • Elemente nedefinite: Este posibil să nu fi identificat numărul de elemente din codul dvs., este important ca numărul elementelor dintr-o matrice să fie definit utilizând comenzile „Dim” sau „ReDim”.
  • Membru incorect de colectare: În unele cazuri, este posibil ca utilizatorul să fi făcut referință la un membru al colecției care nu există. Dacă se face o referință incorectă către membrul colecției, această eroare ar putea fi declanșată.
  • Script stenogramă: Este posibil să fi folosit o formă de stenografie a indicelui și să fi specificat implicit un element care era nevalid. Este important să utilizați un nume de cheie valid.

Acum, că aveți o înțelegere de bază a naturii problemei, vom trece la soluții. Asigurați-vă că le implementați în ordinea specifică în care sunt prezentate pentru a evita conflictele.

Soluția 1: Verificarea matricelor

Este posibil să fi definit o valoare incorectă pentru elementul Array. Prin urmare, se recomandă să verificați de două ori valoarea pe care ați definit-o pentru elementul Array și să vă asigurați că este corectă. De asemenea, asigurați-vă că verificați declarația matricei și verifica limita superioară și inferioară. Dacă matricile au fost redimensionate, asigurați-vă că utilizați LBound și UBound funcții pentru condiționarea acceselor. Verificați ortografia numelui variabilei dacă indexul este o variabilă.

Matrice în VBA Excel



Soluția 2: specificarea numărului de elemente

În unele cazuri, este posibil să nu fi definit numărul de elemente din codul dvs. din cauza căruia se declanșează eroarea. Se recomandă să specificați numărul de elemente din matrice folosind Nici unul sau ReDim funcții.

Folosind Dim și ReDim pentru a specifica numărul de elemente

Soluția 3: Schimbarea construcției

Această eroare este declanșată în mod obișnuit atunci când utilizatorul specifică un membru de colecție incorect sau inexistent. Prin urmare, în loc să specificați elementele indexului, este recomandat să abordați cu „ Pentru fiecare ... În continuare ”Construi.

Utilizând construcția „Pentru fiecare ... Următorul”

Soluția 4: Verificarea numelui cheii și a indexului

În unele cazuri, este posibil să fi folosit o formă stenogramă a indicelui și să specifice un element nevalid. Prin urmare, este recomandat să utilizați un cheie validă Nume și index pentru colecție.

Utilizarea unui nume de cheie valid

2 minute citite