Hvordan fikser jeg 'Abonnement uden for rækkevidde' i Visual Basic til applikationer?



Prøv Vores Instrument Til At Fjerne Problemer

Visual Basic for Applications (VBA) er en implementering af Visual Basic-programmeringssproget udviklet af Microsoft. VBA kan bruges til at aktivere UDF'er, automatisere opgaver og få adgang til WinAPI gennem DLL'er. For nylig er der imidlertid kommet mange rapporter, hvor brugerne ikke er i stand til at udføre bestemte kommandoer og en “ Abonnement uden for rækkevidde, fejl 9 ”Dukker op, mens du prøver at gøre det.



Fejl i abonnement uden for området



Hvad forårsager fejlen 'Abonnement uden for rækkevidde' i VBA?

Efter at have modtaget adskillige rapporter fra flere brugere, besluttede vi at undersøge problemet og udtænkte et sæt løsninger til at løse det fuldstændigt. Vi kiggede også på årsagerne til, at den blev udløst, og anførte dem som følger.



  • Ikke-eksisterende element: I nogle tilfælde er det muligt, at du muligvis har henvist til et element i kommandoen, der ikke findes. Det er muligt, at abonnementet enten er større eller mindre end rækkevidden af ​​mulige abonnementer eller dimensioner, der muligvis ikke er tildelt arrayet på dette tidspunkt i applikationen.
  • Udefinerede elementer: Det er muligt, at du ikke identificerede antallet af elementer i din kode, det er vigtigt, at antallet af elementer i en matrix defineres ved hjælp af kommandoerne 'Dim' eller 'ReDim'.
  • Forkert indsamlingsmedlem: I nogle tilfælde kan brugeren have henvist til et indsamlingsmedlem, der ikke findes. Hvis der foretages en forkert henvisning til indsamlingsmedlemmen, udløses denne fejl muligvis.
  • Stenografi script: Det er muligt, at du har brugt en stenografisk form af abonnement, og det angav implicit et element, der var ugyldigt. Det er vigtigt at bruge et gyldigt nøglenavn.

Nu hvor du har en grundlæggende forståelse af problemets natur, vil vi gå videre mod løsningerne. Sørg for at implementere disse i den specifikke rækkefølge, som de præsenteres for at undgå konflikt.

Løsning 1: Kontrol af arrays

Det er muligt, at du har defineret en forkert værdi for Array-elementet. Derfor anbefales det at dobbelttjekke den værdi, du har defineret for Array-elementet og sørge for, at den er den rigtige. Sørg også for, at du kontrollerer erklæringen for arrayet og verificere øvre og nedre grænse. Hvis arrays er blevet redimensioneret, skal du sørge for at bruge LBound og UBundet funktioner til tilstandsadgang. Kontroller stavningen af ​​variabelnavnet, hvis indekset er en variabel.

Array i VBA Excel



Løsning 2: Angivelse af antal elementer

I nogle tilfælde er det muligt, at du muligvis ikke har defineret antallet af elementer i din kode, som fejlen udløses af. Det anbefales, at du angiver antallet af elementer i arrayet ved hjælp af Ingen eller ReDim funktioner.

Brug Dim og ReDim til at specificere antallet af elementer

Løsning 3: Ændring af konstruktion

Denne fejl udløses ofte, når brugeren angiver et forkert eller ikke-eksisterende indsamlingsmedlem. I stedet for at specificere indekselementerne anbefales det derfor, at du nærmer dig med “ For hver ... Næste ”Konstruktion.

Brug konstruktionen 'For hver ... Næste'

Løsning 4: Kontrol af nøglenavn og indeks

I nogle tilfælde er det muligt, at du muligvis har brugt en stenografisk form af abonnementet, og det angiver et ugyldigt element. Derfor anbefales det, at du bruger en gyldig nøgle navn og indeks til samlingen.

Brug af et gyldigt nøglenavn

2 minutter læst