Inhoudsopgave
In dit artikel tonen wij u de redenen voor de " Subscript buiten bereik " fout in Excel VBA en hoe die op te lossen.
Praktijksjabloon downloaden
U kunt het gratis oefensjabloon in Excel hier downloaden.
Subscript buiten bereik fout in VBA.xlsm
Wat is Subscript buiten bereik-fout in VBA?
VBA Subscript buiten bereik fout treedt op wanneer we proberen toegang te krijgen tot een niet-bestaand lid of niet-bestaande array verzameling in Excel. Dit is een " Run-Time Fout 9 " type fout in VBA codering in Excel.
De fout ziet er meestal zo uit,
5 Redenen met oplossingen voor Subscript buiten bereik-fout in VBA
In dit deel worden de 5 meest voorkomende redenen voor het optreden van de Subscript buiten bereik en wat de oplossingen daarvoor zijn.
1. Subscript buiten bereik fout in VBA voor niet-bestaande werkmap
Wanneer u probeert een Excel-werkmap te openen die niet geopend is, krijgt u een " Subscript buiten bereik " fout.
Als we proberen om Ren de bovenstaande code, krijgen we de foutmelding omdat er geen Excel-werkmap is met de naam " Verkoop "die momenteel open is.
Oplossing
Om deze fout op te lossen, opent u eerst de Excel-werkmap die u wilt openen en voert u vervolgens de macro uit.
2. Fout met subscript buiten bereik in VBA voor niet-bestaand werkblad
Wanneer u probeert een werkblad te openen dat niet bestaat in de Excel werkmap dan krijgt u ook de " Subscript buiten bereik " fout in VBA .
Als we de bovenstaande code proberen uit te voeren, krijgen we een foutmelding omdat er geen " Sheet2 " werkblad in onze werkmap.
Oplossing
Om deze fout op te lossen, moet u het Excel-blad dat u wilt openen in de lopende werkmap hebben en vervolgens de macro uitvoeren.
3. Subscript buiten bereik-fout in VBA voor ongedefinieerde array-elementen
Als u de lengte van een dynamische Array niet definieert met het woord DIM of REDIM in Excel VBA dan krijg je de " Subscript buiten bereik " fout.
In de bovenstaande code hebben we de Array gedeclareerd in de dimensie van 5 tot 10, maar verwezen naar een subscript van index 3, die lager is dan 5.
Oplossing
Om dit op te lossen, declareert u de index tussen de Array-dimensie.
Dit stukje code werkt perfect omdat we hier verwezen naar het subscript van de index 5, dat binnen het bereik van 5 tot 10 ligt.
4. Subscript buiten bereik-fout in VBA voor ongeldige verzameling/array
Als het subscript groter of kleiner is dan het bereik van mogelijke subscripties, dan is de Subscript buiten bereik zal er een fout optreden.
Kijk naar het bovenstaande voorbeeld, we hebben de variabele gedeclareerd als een Array, maar in plaats van een begin- en eindpunt toe te wijzen, hebben we direct de eerste array met de waarde 20 toegewezen.
Oplossing
Om dit probleem op te lossen, moeten we de lengte van de matrix toewijzen met een begin- en eindpunt.
Deze code geeft geen foutmelding omdat we nu de Array hebben gedeclareerd met een beginpunt van 1 en een eindpunt van 5.
5. Subscript buiten bereik fout in VBA voor steno script
Als u een steno van een subscript gebruikt en het verwijst naar een ongeldig element, dan krijgt u de " Subscript buiten bereik " fout in Excel VBA Bijvoorbeeld, [A2] is het steno voor ActiveSheet.Range(A2) .
Oplossing
Om dit op te lossen, moet u een geldige sleutelnaam en index voor de collectie. In plaats van te schrijven ActiveSheet.Range(A2) kun je gewoon schrijven [ A2 ].
Voordeel van Excel Subscript buiten bereik fout in VBA
- VBA Subscript buiten bereik fout of " Run-Time Fout 9 " is echt nuttig om de positie van de fout te specificeren waar deze zich voordeed in de VBA code.
- Deze fout helpt gebruikers het type fout te vinden, zodat zij de oplossingen kunnen controleren en vinden volgens de foutcode.
Dingen om te onthouden
- Omdat deze fout elke stap van de code compileert om ons precies te vertellen voor welk deel van de code we daadwerkelijk actie moeten ondernemen, is het beter om elke regel code één voor één te compileren door op F8 sleutel als je een enorme regel code hebt.
Conclusie
Dit artikel toont u de redenen en oplossingen van Excel Subscript buiten bereik fout in VBA. Ik hoop dat dit artikel zeer nuttig voor u is geweest. Voel u vrij om vragen over het onderwerp te stellen.