Oppaat

Kuinka korjata alaindeksi alueen ulkopuolella -virhe Visual Basic for Applications -sovelluksessa?

Visual Basic for Applications (VBA) on Microsoftin kehittämän Visual Basic -ohjelmointikielen toteutus. VBA: ta voidaan käyttää UDF: ien käyttöönottoon, tehtävien automatisointiin ja WinAPI: n käyttämiseen DLL: ien kautta. Viime aikoina on kuitenkin tullut paljon raportteja, joissa käyttäjät eivät pysty suorittamaan tiettyjä komentoja jaAlaindeksi alueen ulkopuolella, virhe 9”Ponnahtaa yrittäessään.

Mikä aiheuttaa VBA: n alaindeksin alueen ulkopuolella -virheen?

Saatuamme useita raportteja useilta käyttäjiltä päätimme tutkia ongelmaa ja kehitimme joukon ratkaisuja sen korjaamiseksi kokonaan. Tutkimme myös syitä, joiden vuoksi se laukaistaan, ja lueteltiin ne seuraavasti.

  • Ei-olemassa oleva elementti:Joissakin tapauksissa on mahdollista, että olet viitannut komennossa olevaan elementtiin, jota ei ole olemassa. On mahdollista, että alaindeksi on joko suurempi tai pienempi kuin mahdollisten alaindeksien alue tai ulottuvuuksia ei ehkä ole annettu taulukolle tässä sovelluksen kohdassa.
  • Määrittelemättömät elementit:On mahdollista, että et tunnistanut koodissasi olevien elementtien lukumäärää, on tärkeää, että taulukon elementtien määrä määritetään käyttämällä Dim- tai ReDim-komentoja.
  • Virheellinen kokoelman jäsen: Joissakin tapauksissa käyttäjä on saattanut viitata kokoelman jäseneen, jota ei ole olemassa. Jos keräysjäsenelle viitataan väärin, virhe saattaa laukaista.
  • Lyhytkirjoitus:On mahdollista, että olet käyttänyt lyhenteen muotoista alaindeksiä ja se on implisiittisesti määrittänyt virheellisen elementin. On tärkeää käyttää kelvollista avaimen nimeä.

Nyt kun sinulla on perustiedot ongelman luonteesta, siirrymme kohti ratkaisuja. Varmista, että nämä toteutetaan siinä järjestyksessä, jossa ne esitetään, jotta vältetään ristiriidat.

Ratkaisu 1: Taulukoiden tarkistaminen

On mahdollista, että olet määrittänyt väärän arvon Array-elementille. Siksi on suositeltavaa tarkistaa Array-elementille määritetty arvo uudelleen ja varmistaa, että se on oikea. Varmista myös, että tarkistat taulukon ilmoituksen ja tarkista ylä- ja alarajat. Jos taulukot on mitoitettu uudelleen, muista käyttää LSidottu ja UBound toiminnot pääsyn ehdollistamiseksi. Tarkista Muuttujan nimen oikeinkirjoitus, jos hakemisto on muuttuja.

Ratkaisu 2: Elementtien määrän määrittäminen

Joissakin tapauksissa on mahdollista, että et ole määrittänyt koodissasi niiden elementtien määrää, joiden vuoksi virhe käynnistetään. On suositeltavaa määrittää taulukon elementtien lukumäärä käyttämällä Himmeä tai ReDim toimintoja.

Ratkaisu 3: Rakenteen muuttaminen

Tämä virhe laukaistaan ​​yleensä, kun käyttäjä määrittää väärän tai olemattoman kokoelmajäsenen. Siksi indeksielementtien määrittelemisen sijaan on suositeltavaa lähestyä "Jokaiselle… Seuraava”Rakentaa.

Ratkaisu 4: Avaimenimen ja hakemiston tarkistaminen

Joissakin tapauksissa on mahdollista, että olet käyttänyt alaindeksin lyhytmuotoa ja se määrittää virheellisen elementin. Siksi on suositeltavaa käyttää a kelvollinen avainnimi ja indeksi kokoelmaan.

$config[zx-auto] not found$config[zx-overlay] not found