Ynhâldsopjefte
Yn dit artikel sille wy jo de redenen sjen litte foar de flater " Subscript out of Range " yn Excel VBA en hoe't jo dy oplosse kinne.
Download Practice Template
Jo kinne it fergese Excel-sjabloan downloade fan hjir.
Subscript Out of Range Error in VBA.xlsm
Wat is Subscript Out of Range Error yn VBA?
VBA Subscript out of range flater komt foar as wy besykje tagong te krijen ta elk net-besteand lid of net-besteand array-kolleksje yn Excel. Dit is in " Run-Time Error 9 " type flater yn VBA kodearring yn Excel.
De flater sjocht der normaal sa út,
5 Redenen mei oplossingen fan Subscript Out of Range Error yn VBA
Dizze seksje sil de 5 meast foarkommende redenen besprekke foar it foarkommen fan de Subscript out of range flater en wat binne de oplossingen dêrfoar.
1. Subscript Out of Range Error in VBA for Nonexistent Workbook
As jo besykje tagong te krijen ta in Excel-wurkboek dat net iepen is, krije jo in flater " Underskrift bûten berik ".
As wy besykje Utfiere de hjirboppe werjûn koade, sille wy de flater krije, om't d'r gjin Excel-wurkboek is mei de namme " Ferkeap " dat op it stuit iepen is.
Oplossing
Om dizze flater op te lossen, iepenje earst it Excel-wurkboek dat jo tagong wolle en dan útfiere de makro.
2. Subscript Out of Range Flater yn VBA foar net-besteandWurkblêd
As jo besykje tagong te krijen ta in wurkblêd dat net yn it Excel-wurkboek bestiet, dan krije jo ek de flater " Subscript out of range " yn VBA .
As wy besykje de hjirboppe werjûn koade út te fieren, krije wy de flater, om't der gjin " Sheet2
Oplossing
Om dizze flater op te lossen, moatte jo it Excel-blêd hawwe dat jo tagong wolle yn it rinnende wurkboek en Run dan de makro.
3. Subscript Out of Range Error yn VBA foar Undefined Array Elements
As jo de lingte fan in dynamyske Array net definiearje mei de wurd DIM of REDIM yn Excel VBA , dan krije jo de flater " Subscript out of range ".
Yn 'e boppesteande koade hawwe wy de Array ferklearre yn' e diminsje fan 5 oant 10, mar ferwize nei in subskript fan yndeks 3, dat leger is as 5.
Oplossing
Om dit op te lossen, ferklearje de yndeks tusken de Array-dimensje.
Dit stik e fan koade wurket perfekt goed, om't wy hjir ferwize nei it subskript fan 'e yndeks 5, dy't binnen it berik fan 5 oant 10 is.
4. Subscript Out of Range Error in VBA for Invalid Collection/ Array
As it subscript grutter of lytser is dan it berik fan mooglike subscript, dan sil de Subscript out of range flater foarkomme.
Sjoch nei it boppesteande foarbyld, wyferklearre de fariabele as in array, mar ynstee fan in begjin- en einpunt ta te jaan, hawwe wy de earste array direkt tawiisd mei de wearde fan 20.
Solution
Om dit probleem oplosse, wy moatte de lingte fan 'e array tawize mei in begjin- en einpunt.
Dizze koade jout gjin flater, om't wy no de Array ferklearre hawwe mei in begjinpunt fan 1 en in einpunt fan 5.
5. Subscript Out of Range Error yn VBA foar Shorthand Script
As jo in shorthand brûke fan in subscript en it ferwiist nei in ûnjildich elemint dan krije jo de flater " Subscript out of range " yn Excel VBA . Bygelyks, [A2] is de koarting foar ActiveSheet.Range(A2) .
Oplossing
Om te reparearjen dit moatte jo in jildige kaainamme en yndeks brûke foar de kolleksje. Ynstee fan ActiveSheet.Range(A2) te skriuwen, kinne jo gewoan [ A2 ] skriuwe.
Foardielen fan Excel Subscript Out of Range Error yn VBA
- VBA Subscript out of range flater of " Run-Time Error 9 " is echt nuttich by it opjaan fan de posysje fan 'e flater wêr't it barde yn de VBA -koade.
- Dizze flater helpt brûkers om it type flater te finen, sadat se de oplossingen kontrolearje en fine kinne neffens de flaterkoade.
Dingen om te ûnthâlden
- Om't dizze flater elke stap fan koade kompilearret om ús krekt te rjochtsjen hokker diel fande koade dêr't wy eins aksjes foar moatte nimme, dus it is better om elke rigel koade ien foar ien te kompilearjen troch op F8 -toets te drukken as jo in grutte rigel koade hawwe.
Konklúzje
Dit artikel toande jo de redenen en oplossingen fan Excel Subscript out of range flater yn VBA. Ik hoopje dat dit artikel tige foardielich foar jo west hat. Fiel jo frij om fragen te stellen oangeande it ûnderwerp.