Vodniki

Kako popraviti napako »Subscript Out of Range« v programu Visual Basic za aplikacije?

Visual Basic for Applications (VBA) je izvedba programskega jezika Visual Basic, ki ga je razvil Microsoft. VBA se lahko uporablja za omogočanje UDF-jev, avtomatizacijo opravil in dostop do WinAPI prek DLL-jev. Vendar pa v zadnjem času prihaja veliko poročil, kjer uporabniki ne morejo izvršiti določenih ukazov inPodpisnik izven dosega, napaka 9”Pojavi se med poskusom.

Kaj povzroča napako »Subscript Out of Range« v VBA?

Po prejemu številnih poročil več uporabnikov smo se odločili raziskati težavo in oblikovali nabor rešitev, ki jo bodo v celoti odpravili. Preučili smo tudi razloge, zaradi katerih se sproži, in jih navedli na naslednji način.

  • Neobstoječi element:V nekaterih primerih je možno, da ste se v ukazu sklicevali na element, ki ne obstaja. Možno je, da je indeks večji ali manjši od obsega možnih indeksov ali dimenzij, ki trenutno niso bile dodeljene matriki v aplikaciji.
  • Nedoločeni elementi:Možno je, da v kodi niste prepoznali števila elementov, pomembno je, da število elementov v matriki določite z ukazoma »Dim« ali »ReDim«.
  • Nepravilen član zbirke: V nekaterih primerih se je uporabnik morda skliceval na člana zbirke, ki ne obstaja. Če se napačno sklicuje na člana zbirke, se lahko ta napaka sproži.
  • Okrajšani scenarij:Možno je, da ste uporabili stenografsko obliko podpisa in je implicitno navedel neveljaven element. Pomembno je, da uporabite veljavno ime ključa.

Zdaj, ko dobro razumete naravo problema, bomo šli k rešitvam. Poskrbite, da jih boste uporabili v določenem vrstnem redu, v katerem so predstavljeni, da se izognete konfliktu.

1. rešitev: Preverjanje nizov

Možno je, da ste za element Array definirali napačno vrednost. Zato je priporočljivo, da dvakrat preverite vrednost, ki ste jo določili za element Array, in se prepričate, da je pravilna. Prepričajte se tudi, da ste preverili deklaracijo matrike in preverite zgornja in spodnja meja. Če so nizi preoblikovani, ne pozabite uporabiti LBound in UBound funkcije za pogojevanje dostopov. Preverite črkovanje imena spremenljivke, če je indeks spremenljivka.

Rešitev 2: Določanje števila elementov

V nekaterih primerih je možno, da v kodi niste določili števila elementov, zaradi katerih se napaka sproži. Priporočljivo je, da določite število elementov v matriki s pomočjo Dim ali ReDim funkcije.

Rešitev 3: Spreminjanje konstrukcije

Ta napaka se običajno sproži, ko uporabnik poda napačen ali neobstoječ član zbirke. Zato namesto določanja elementov indeksa priporočamo, da pristopite zZa vsakega ... Naprej”Konstruirati.

4. rešitev: Preverjanje imena ključa in indeksa

V nekaterih primerih je možno, da ste uporabili okrajšavo podpisnika in podaja neveljaven element. Zato je priporočljivo, da uporabite a veljaven ključime in indeks za zbirko.

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