Sisällysluettelo
Tässä artikkelissa näytämme sinulle syyt " Alaindeksi alueen ulkopuolella " virhe Excelissä VBA ja miten ne ratkaistaan.
Lataa käytäntömalli
Voit ladata ilmaisen Excel-mallin täältä.
Subscript Out of Range -virhe VBA.xlsm:ssä
Mikä on Subscript Out of Range -virhe VBA:ssa?
VBA Subscript alueen ulkopuolella virhe tapahtuu, kun yritämme käyttää jotain Excelin olemattomia jäseniä tai olemattomia ryhmäkokoelmia. Tämä on " Ajonaikainen virhe 9 " virhetyyppi VBA koodaus Excelissä.
Virhe näyttää yleensä tältä,
5 syytä ja ratkaisut Subscript Out of Range -virheeseen VBA:ssa
Tässä jaksossa käsitellään viittä yleisintä syytä, jotka johtuvat seuraavista syistä Alaindeksi alueen ulkopuolella virhe ja mitkä ovat ratkaisut siihen.
1. Subscript Out of Range -virhe VBA:ssa olemattomalle työkirjalle
Kun yrität käyttää Excel-työkirjaa, joka ei ole auki, saat ilmoituksen " Alaindeksi alueen ulkopuolella " virhe.
Jos yritämme Suorita edellä esitettyä koodia, saamme virheen, koska Excel-työkirjaa nimeltä "" ei ole. Myynti ", joka on tällä hetkellä auki.
Ratkaisu
Voit ratkaista tämän virheen avaamalla ensin Excel-työkirjan, johon haluat päästä käsiksi, ja suorittamalla sitten makron.
2. Subscript Out of Range -virhe VBA:ssa olemattoman työarkin osalta
Kun yrität käyttää laskentataulukkoa, jota ei ole olemassa Excel-työkirjassa, saat myös " Alaindeksi alueen ulkopuolella " virhe osoitteessa VBA .
Jos yritämme suorittaa yllä olevan koodin, saamme virheilmoituksen, koska " Sheet2 " -työselostetta, joka on saatavilla työkirjassamme.
Ratkaisu
Tämän virheen ratkaisemiseksi sinun on oltava Excel-arkki, jota haluat käyttää käynnissä olevassa työkirjassa, ja suorita sitten makro.
3. Subscript Out of Range -virhe VBA:ssa määrittelemättömien rivielementtien osalta
Jos et määrittele dynaamisen Array:n pituutta sanalla DIM tai REDIM Excelissä VBA , niin saat " Alaindeksi alueen ulkopuolella " virhe.
Yllä olevassa koodissa ilmoitimme Arrayn ulottuvuuden 5-10, mutta viittasimme indeksiin 3, joka on pienempi kuin 5.
Ratkaisu
Voit ratkaista tämän ilmoittamalla indeksin Array-ulottuvuuden väliin.
Tämä koodinpätkä toimii täydellisesti, koska tässä viitataan indeksin 5 alaindeksiin, joka on alueella 5-10.
4. Subscript Out of Range -virhe VBA:ssa, kun kyseessä on virheellinen kokoelma/muotoilu
Kun alaindeksi on suurempi tai pienempi kuin mahdollisten alaindeksien vaihteluväli, niin sitten Alaindeksi alueen ulkopuolella tapahtuu virhe.
Katso yllä olevaa esimerkkiä: ilmoitimme muuttujan Array-muuttujaksi, mutta sen sijaan, että olisimme määritelleet alku- ja loppupisteen, olemme määritelleet suoraan ensimmäisen array-muuttujan, jonka arvo on 20.
Ratkaisu
Tämän ongelman korjaamiseksi meidän on määriteltävä matriisin pituus, jolla on alku- ja loppupiste.
Tämä koodi ei anna mitään virhettä, koska nyt olemme ilmoittaneet Array:n, jonka alkupiste on 1 ja loppupiste 5.
5. Subscript Out of Range -virhe VBA:n pikakirjoituskomentosarjassa
Jos käytät lyhennettä subscriptistä ja se viittaa virheelliseen elementtiin, saat tulokseksi " Alaindeksi alueen ulkopuolella " virhe Excelissä VBA Esimerkiksi, [A2] on lyhenne sanoista ActiveSheet.Range(A2) .
Ratkaisu
Korjataksesi tämän, sinun on käytettävä kelvollista avaimen nimi ja indeksi sen sijaan, että kirjoittaisit ActiveSheet.Range(A2) , voit vain kirjoittaa [ A2 ].
Excelin Subscript Out of Range -virheen etu VBA: ssa
- VBA Subscript alueen ulkopuolella virhe tai " Ajonaikainen virhe 9 " on todella hyödyllinen määritettäessä virheen sijaintia, jossa se tapahtui. VBA koodi.
- Tämä virhe auttaa käyttäjiä löytämään virhetyypin, jotta he voivat tarkistaa ja löytää ratkaisut virhekoodin mukaan.
Muistettavat asiat
- Koska tämä virhe kääntää jokaisen koodin vaiheen osoittaakseen meille tarkalleen, mihin koodin osaan meidän on todella ryhdyttävä toimenpiteisiin, on parempi kääntää jokainen koodirivi yksitellen painamalla painiketta F8 näppäintä, jos sinulla on valtava koodirivi.
Päätelmä
Tämä artikkeli osoitti sinulle Excelin syyt ja ratkaisut. Alaindeksi alueen ulkopuolella virhe VBA. Toivottavasti tästä artikkelista on ollut sinulle paljon hyötyä, ja voit kysyä vapaasti aiheeseen liittyviä kysymyksiä.