INHOUDSOPGAWE
In hierdie artikel sal ons jou die redes wys vir die " Subscript out of Range "-fout in Excel VBA en hoe om dit op te los.
Laai oefensjabloon af
Jy kan die gratis oefen- Excel-sjabloon van hier af aflaai.
Subscript Out of Range Error in VBA.xlsm
Wat is Subscript Out of Range Error in VBA?
VBA-onderskrif buite omvang -fout vind plaas wanneer ons probeer om toegang te verkry tot enige nie-bestaande lid of nie-bestaande skikkingversameling in Excel. Dit is 'n " Run-Time Error 9 " tipe fout in VBA kodering in Excel.
Die fout lyk gewoonlik so,
5 redes met oplossings van subskripsie buite-omvangfout in VBA
Hierdie afdeling sal die 5 mees algemene redes vir die voorkoms van die bespreek Onderskrif buite reeks -fout en wat is die oplossings daarvoor.
1. Onderskrif buite-omvangfout in VBA vir nie-bestaande werkboek
Wanneer jy probeer om toegang tot 'n Excel-werkboek te kry wat nie oop is nie, sal jy 'n " Subskrip buite bereik "-fout kry.
As ons probeer om die kode wat hierbo gewys word hardloop , sal ons die fout kry want daar is geen Excel-werkboek met die naam " Verkope ” wat tans oop is.
Oplossing
Om hierdie fout op te los, maak eers die Excel-werkboek oop waartoe jy toegang wil hê en dan Begin die makro.
2. Onderskrif buite bereik fout in VBA vir nie-bestaandeWerkblad
Wanneer jy probeer om toegang te verkry tot 'n werkblad wat nie in die Excel-werkboek bestaan nie, sal jy ook die " Subscript buite reeks "-fout kry in VBA .
As ons probeer om die kode hierbo te laat loop, sal ons die fout kry want daar is geen " Blad2 ” werkblad beskikbaar in ons werkboek.
Oplossing
Om hierdie fout op te los, moet jy die Excel-blad waartoe jy toegang wil hê in die lopende werkboek hê en Begin dan die makro.
3. Onderskrif buite-reeksfout in VBA vir ongedefinieerde skikkingselemente
As jy nie die lengte van 'n dinamiese skikking definieer met die woord DIM of REDIM in Excel VBA , dan sal jy die “ Subscript out of range ”-fout kry.
In die bogenoemde kode het ons die Skikking in die dimensie van 5 tot 10 verklaar, maar het verwys na 'n subskripsie van indeks 3, wat laer as 5 is.
Oplossing
Om dit op te los, verklaar die indeks tussen die Array-dimensie.
Hierdie stuk e van kode werk heeltemal goed, want hier het ons verwys na die subskrip van die indeks 5, wat binne die reeks van 5 tot 10 is.
4. Subscript Out of Range Error in VBA for Invalid Collection/ Skikking
Wanneer die subskripsie groter of kleiner is as die omvang van moontlike subskripsie, sal die Subskrip buite reeks -fout voorkom.
Kyk na die bostaande voorbeeld, onshet die veranderlike as 'n Skikking verklaar, maar in plaas daarvan om 'n begin- en eindpunt toe te ken, het ons die eerste skikking direk met die waarde van 20 toegewys.
Oplossing
Aan los hierdie probleem op, ons moet die lengte van die skikking met 'n begin- en eindpunt toewys.
Hierdie kode gee geen fout nie, want nou het ons die Skikking verklaar met 'n beginpunt van 1 en 'n eindpunt van 5.
5. Subscript Out of Range Error in VBA vir Snelskrifskrif
As jy 'n snelskrif van 'n subscript en dit verwys na 'n ongeldige element, dan sal jy die " Subscript out of range "-fout in Excel VBA kry. Byvoorbeeld, [A2] is die snelskrif vir ActiveSheet.Range(A2) .
Oplossing
Om reg te stel dit, jy moet 'n geldige sleutelnaam en indeks vir die versameling gebruik. In plaas daarvan om ActiveSheet.Range(A2) te skryf, kan jy net [ A2 ] skryf.
Voordeel van Excel Subscript Out of Range Error in VBA
- VBA Subscript buite reeks fout of " Run-Time Error 9 " is baie nuttig om die posisie van die fout te spesifiseer waar dit voorgekom het in die VBA -kode.
- Hierdie fout help gebruikers om die tipe fout te vind sodat hulle die oplossings volgens die foutkode kan nagaan en vind.
Dinge om te onthou
- Aangesien hierdie fout elke stap van kode saamstel om ons presies te wys watter deel vandie kode waarvoor ons eintlik aksies moet neem, daarom is dit beter om elke reël kode een vir een saam te stel deur die F8 sleutel te druk as jy 'n groot reël kode het.
Gevolgtrekking
Hierdie artikel het jou die redes en oplossings gewys van Excel Subscript buite reeks fout in VBA. Ek hoop hierdie artikel was baie voordelig vir jou. Vra gerus enige vrae rakende die onderwerp.