Fix Subscript Out of Range Error in Visual Basic for Applications (VBA)



Oppdatert mai 2024: Slutt å få feilmeldinger og senk systemet med optimaliseringsverktøyet vårt. Få den nå på denne koblingen
  1. Last ned og installer reparasjonsverktøyet her.
  2. La den skanne datamaskinen din.
  3. Verktøyet vil da fiks datamaskinen din.

VBA-abonnement utenfor rekkevidde oppstår fordi objektet vi vil ha tilgang til ikke eksisterer. Dette er en type feil i VBA-koding og en "Run Time Error 9". Det er viktig å forstå konseptene for å skrive effektiv kode, og det er enda viktigere å forstå feilen i VBA-koden din for å feilsøke koden effektivt.

Hvis du og kodingsfeilen din ikke vet hva denne feilen er når du er fraværende.

En lege kan ikke gi medisiner til pasienten sin uten å kjenne til sykdommen. Mens legen og pasienten vet at det er en sykdom (feil), er det viktig å forstå sykdommen (feilen) som å gi henne medisiner. Hvis du helt forstår feilen, er det mye lettere å finne løsningen.

En annen årsak kan være at du ikke har en standardskriver på datamaskinen. Det er flere løsninger for å løse dette Runtime Error 9 problem, så prøv dem i riktig rekkefølge.

Legge til en standardskriver

  1. Koble en skriver til datamaskinen, koble til strømledningen og slå den på.
  2. Gå til "Start"> "Kontrollpanel"> "Skrivere og faksmaskiner".
  3. Klikk på “Legg til skriver” og følg instruksjonene på skjermen for å legge til en standardskriver.

Sjekk Arrays

Det er mulig at du har angitt en feil verdi for matriseelementet. Det anbefales derfor å sjekke verdien du har definert for array-elementet på nytt, og sørge for at den er riktig. Sørg også for å sjekke tabelldeklarasjonen og sjekke øvre og nedre grenser. Hvis tabellene er endret, må du huske å bruke LBound- og UBound-funksjonene for å kondisjonere tilgangen. Sjekk stavingen til variabelnavnet hvis indeksen er en variabel.

Definer antall elementer

I noen tilfeller har du kanskje ikke definert antall elementer i koden som utløser feilen. Det anbefales å spesifisere antall elementer i tabellen ved å bruke Dim- eller ReDim-funksjonene.

Hvordan unngå feilen "Out of Range Error Subscript" i VBA

Unngå å bruke funksjonene integrert i Excel: ActiveWorkbook, ActiveSheet and Selection: Angi returverdiene og foretrekker kvalifiserte uttrykk.



Mai 2024-oppdatering:

Du kan nå forhindre PC -problemer ved å bruke dette verktøyet, for eksempel å beskytte deg mot tap av filer og skadelig programvare. I tillegg er det en fin måte å optimalisere datamaskinen for maksimal ytelse. Programmet fikser vanlige feil som kan oppstå på Windows -systemer uten problemer - du trenger ikke timer med feilsøking når du har den perfekte løsningen på fingertuppene:

  • Trinn 1: Last ned PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista - Microsoft Gold-sertifisert).
  • Trinn 2: Klikk på "start Scan"For å finne Windows-registerproblemer som kan forårsake PC-problemer.
  • Trinn 3: Klikk på "Reparer alle"For å fikse alle problemer.

nedlasting



Bruk den integrerte bare en gang og bare i de mest eksterne makroene (subs) og ta bilder når du starter makroen, f.eks

sett wkb = ActiveWorkbook
set wks = ActiveSheet
Salt sett = utvalg
Under og i makroer er disse integrerte navnene ikke pålitelige, men returverdiene blir registrert, f.eks

Sett wkb = Workbooks.add 'i stedet for Workbooks.add uten å oppgi en returverdi.
wkb.Activate 'i stedet for Activeworkbook.Activate
Forsøk også å bruke kvalifiserte uttrykk, for eksempel

wkb.Sheets (“Sheet3”). name = “foo” 'i stedet for Sheets (“Sheet3”). name = “foo”.
or

Angi newWks = wkb.Sheets.Add.
newWks.name = “bar” 'i stedet for ActiveSheet.name = “bar”.
Bruk kvalifiserte uttrykk, f.eks

newWks.name = “bar” 'i stedet for `xyz.Select' etterfulgt av Selection.name =“ bar ”.
Disse metodene fungerer generelt bedre, gir mindre forvirrende resultater, er mer robuste mot refactoring (for eksempel flytte kodelinjer innenfor og mellom metoder), og fungerer bedre i alle versjoner av Excel. For eksempel endres utvalget på en annen måte fra en versjon av Excel til en annen under utførelsen av makroen.

Vær også oppmerksom på at du sannsynligvis vil finne at bruk av mer kvalifiserte uttrykk ikke krever at du aktiverer nesten like mange funksjoner. (Dette kan bety at skjermen blinker mindre for brukeren.) Så hele Windows (uttrykk) -linjen. Aktivering kan ganske enkelt slettes i stedet for å bli erstattet av wkb. Aktiver i det hele tatt.

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/subscript-out-of-range-error-9



Ekspert Tips: Dette reparasjonsverktøyet skanner depotene og erstatter korrupte eller manglende filer hvis ingen av disse metodene har fungert. Det fungerer bra i de fleste tilfeller der problemet skyldes systemkorrupsjon. Dette verktøyet vil også optimere systemet ditt for å maksimere ytelsen. Den kan lastes ned av Klikk her