Innholdsfortegnelse
I denne artikkelen vil vi vise deg årsakene til « Subscript out of Range »-feilen i Excel VBA og hvordan du løser disse.
Last ned øvingsmal
Du kan laste ned den gratis øvelsesmalen for Excel herfra.
Subscript Out of Range Error in VBA.xlsm
Hva er Subscript Out of Range Error i VBA?
VBA Subscript out of range feil oppstår når vi prøver å få tilgang til et ikke-eksisterende medlem eller ikke-eksisterende matrisesamling i Excel. Dette er en " Run-Time Error 9 " type feil i VBA -koding i Excel.
Feilen ser vanligvis slik ut,
5 grunner med løsninger for Subscript Out of Range Error i VBA
Denne delen vil diskutere de 5 vanligste årsakene til forekomsten av Subscript out of range -feil og hva er løsningene på den.
1. Subscript Out of Range Error i VBA for ikke-eksisterende arbeidsbok
Når du prøver å få tilgang til en Excel-arbeidsbok som ikke er åpen, vil du få en « Subscript utenfor rekkevidde »-feil.
Hvis vi prøver å Kjøre koden vist ovenfor, får vi feilen fordi det ikke er noen Excel-arbeidsbok kalt " Sales » som er åpen for øyeblikket.
Løsning
For å løse denne feilen, åpne først Excel-arbeidsboken du vil ha tilgang til og deretter Kjør makroen.
2. Subscript Out of Range Error i VBA for ikke-eksisterendeRegneark
Når du prøver å få tilgang til et regneark som ikke finnes i Excel-arbeidsboken, vil du også få feilen « Subscript out of range » i VBA .
Hvis vi prøver å kjøre koden vist ovenfor, får vi feilen fordi det ikke er noen " Ark2 ”-regnearket tilgjengelig i arbeidsboken vår.
Løsning
For å løse denne feilen må du ha Excel-arket du vil ha tilgang til i den kjørende arbeidsboken og Kjør deretter makroen.
3. Subscript Out of Range Error i VBA for Undefined Array Elements
Hvis du ikke definerer lengden på en dynamisk matrise med ord DIM eller REDIM i Excel VBA , så får du feilen " Subscript out of range ".
I koden ovenfor erklærte vi Array i dimensjonen fra 5 til 10, men refererte til et subskript av indeks 3, som er lavere enn 5.
Løsning
For å løse dette, deklarer indeksen mellom Array-dimensjonen.
Dette stykket e av kode fungerer helt greit fordi vi her refererte til subscriptet til indeksen 5, som er innenfor området 5 til 10.
4. Subscript Out of Range Error i VBA for Invalid Collection/ Array
Når subscriptet er større eller mindre enn rekkevidden av mulig subscript, vil feilen Subscript out of range oppstå.
Se på eksemplet ovenfor, vierklærte variabelen som en matrise, men i stedet for å tilordne et start- og sluttpunkt, har vi direkte tilordnet den første matrisen med verdien 20.
Løsning
Til fikse dette problemet, vi må tilordne lengden på matrisen med et start- og sluttpunkt.
Denne koden gir ingen feil fordi vi nå har erklært matrisen med et startpunkt på 1 og et sluttpunkt på 5.
5. Subscript Out of Range Error i VBA for Shorthand Script
Hvis du bruker en stenografi fra en subscript og det refererer til et ugyldig element, vil du få " Subscript out of range "-feilen i Excel VBA . For eksempel er [A2] forkortelsen for ActiveSheet.Range(A2) .
Løsning
For å fikse Dette må du bruke et gyldig nøkkelnavn og indeks for samlingen. I stedet for å skrive ActiveSheet.Range(A2) , kan du bare skrive [ A2 ].
Fordel med Excel Subscript Out of Range Error i VBA
- VBA Subscript out of range -feil eller « Run-Time Error 9 » er veldig nyttig for å spesifisere posisjonen til feilen der den oppstod i VBA -koden.
- Denne feilen hjelper brukere med å finne feiltypen slik at de kan sjekke og finne løsningene i henhold til feilkoden.
Ting å huske
- Denne feilen kompilerer hvert trinn i koden for å lede oss nøyaktig hvilken del avkoden vi faktisk trenger å iverksette tiltak for, så det er bedre å kompilere hver kodelinje én etter én ved å trykke F8 -tasten hvis du har en stor kodelinje.
Konklusjon
Denne artikkelen viste deg årsakene og løsningene til Excel Subscript utenfor rekkevidde -feilen i VBA. Jeg håper denne artikkelen har vært veldig nyttig for deg. Still gjerne spørsmål angående emnet.