Kaip ištaisyti klaidą „Subscript Out of Range“ programoje „Visual Basic“?



Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas

„Visual Basic for Applications“ (VBA) yra „Microsoft“ sukurta „Visual Basic“ programavimo kalbos įgyvendinimas. VBA gali būti naudojama įgalinant UDF, automatizuojant užduotis ir norint pasiekti WinAPI per DLL. Tačiau visai neseniai buvo pateikta daug pranešimų, kai vartotojai negali vykdyti tam tikrų komandų ir Subkriptas už diapazono ribų, 9 klaida „Pasirodo bandant tai padaryti.



Indekso ribų klaida



Kas sukelia VBA klaidą „Subscript out of Range“?

Gavę daugybę pranešimų iš kelių vartotojų, mes nusprendėme ištirti problemą ir sukūrėme sprendimų rinkinį, kad galėtume visiškai išspręsti problemą. Be to, mes išnagrinėjome priežastis, dėl kurių jis suveikė, ir išvardinome juos taip.



  • Neegzistuojantis elementas: Kai kuriais atvejais gali būti, kad komandoje nurodėte elementą, kurio nėra. Gali būti, kad abonentas yra didesnis arba mažesnis nei galimų abonementų diapazonas, arba matmenys gali būti nepriskirti masyvui šioje programos vietoje.
  • Nenustatyti elementai: Gali būti, kad kode nenustatėte elementų skaičiaus, svarbu, kad masyvo elementų skaičius būtų apibrėžtas naudojant komandas „Dim“ arba „ReDim“.
  • Neteisingas kolekcijos narys: Kai kuriais atvejais vartotojas galėjo nurodyti neegzistuojantį kolekcijos narį. Jei yra neteisinga nuoroda į kolekcijos narį, ši klaida gali būti suaktyvinta.
  • Trumpas scenarijus: Gali būti, kad naudojatės trumpinio forma - tai yra netiesioginis elementas. Svarbu naudoti galiojantį rakto pavadinimą.

Dabar, kai jūs iš esmės suprantate problemos pobūdį, mes eisime prie sprendimų. Kad išvengtumėte konfliktų, būtinai juos įgyvendinkite ta tvarka, kuria jie pateikiami.

1 sprendimas: masyvų tikrinimas

Gali būti, kad jūs nustatėte neteisingą elemento Masyvas vertę. Todėl rekomenduojama dar kartą patikrinti reikšmę, kurią nustatėte elementui „Masyvas“, ir įsitikinti, kad ji yra teisinga. Taip pat įsitikinkite, kad patikrinote masyvo deklaraciją ir patikrinti viršutinė ir apatinė ribos. Jei matricos buvo pakeistos, būtinai naudokite LSusietas ir UBound funkcijos prieigoms sąlygoti. Patikrinkite kintamojo vardo rašybą, jei indeksas yra kintamasis.

Masyvas „VBA Excel“



2 sprendimas: nurodykite elementų skaičių

Kai kuriais atvejais gali būti, kad kode nenustatėte elementų, dėl kurių suveikia klaida, skaičiaus. Rekomenduojama masyvo elementų skaičių nurodyti naudojant Nė vienas arba „ReDim“ funkcijos.

Naudodami „Dim“ ir „ReDim“ nurodykite elementų skaičių

3 sprendimas: konstrukcijos keitimas

Ši klaida dažniausiai įvyksta, kai vartotojas nurodo neteisingą ar neegzistuojantį kolekcijos narį. Todėl, užuot nurodžius indekso elementus, rekomenduojama kreiptis į „ Kiekvienam… Toliau “Konstruoti.

Konstrukcijos „Kiekvienam… Kitas“ naudojimas

4 sprendimas: Keyname ir Index tikrinimas

Kai kuriais atvejais gali būti, kad jūs naudojate stenografinę abonemento formą ir ji nurodo netinkamą elementą. Todėl rekomenduojama naudoti a galiojantis raktas vardas ir indeksas kolekcijai.

Naudojant tinkamą raktinį vardą

2 minutes perskaityta