Visual Basic for Applications (VBA) és una implementació del llenguatge de programació Visual Basic desenvolupat per Microsoft. VBA es pot utilitzar per habilitar UDF, automatitzar tasques i accedir a WinAPI mitjançant DLL. Tanmateix, recentment, han arribat molts informes on els usuaris no poden executar certes ordres i un ' Subíndex fora del rang, error 9 ”Apareix mentre intenta fer-ho.
Error de subíndex fora de l'interval
Què provoca l'error 'Subíndex fora del rang' a VBA?
Després de rebre nombrosos informes de diversos usuaris, vam decidir investigar el problema i vam idear un conjunt de solucions per solucionar-lo completament. A més, vam examinar els motius pels quals es desencadena i els vam enumerar de la manera següent.
- Element inexistent: En alguns casos, és possible que hagueu fet referència a un element de l'ordre que no existeixi. És possible que el subíndex sigui més gran o més petit que l'interval de possibles subíndexs o que les dimensions no s'hagin assignat a la matriu en aquest punt de l'aplicació.
- Elements sense definir: És possible que no identifiqueu el nombre d'elements del vostre codi, és important que el nombre d'elements d'una matriu es defineixi mitjançant les ordres 'Dim' o 'ReDim'.
- Membre incorrecte de la col·lecció: En alguns casos, és possible que l'usuari hagi fet referència a un membre de la col·lecció que no existeix. Si es fa una referència incorrecta cap al membre de la col·lecció, es pot activar aquest error.
- Guió abreujat: És possible que hàgiu utilitzat una forma abreviada de subíndex i que especifiqués implícitament un element que no era vàlid. És important utilitzar un nom de clau vàlid.
Ara que teniu una comprensió bàsica de la naturalesa del problema, continuarem cap a les solucions. Assegureu-vos d'implementar-los en l'ordre específic en què es presenten per evitar conflictes.
Solució 1: comprovació de matrius
És possible que hàgiu definit un valor incorrecte per a l'element Array. Per tant, es recomana comprovar de nou el valor que heu definit per a l'element Array i assegureu-vos que sigui el correcte. A més, assegureu-vos que comproveu la declaració de la matriu i verificar els límits superior i inferior. Si s'han redimensionat les matrius, assegureu-vos d'utilitzar el fitxer LBound i Enllaçat funcions per condicionar els accessos. Comproveu l'ortografia del nom de la variable si l'índex és una variable.
Matriu a VBA Excel
Solució 2: especificar el nombre d'elements
En alguns casos, és possible que no hagueu definit el nombre d'elements del codi a causa dels quals s'està activant l'error. Es recomana especificar el nombre d'elements de la matriu mitjançant el fitxer Cap o bé ReDim funcions.
Mitjançant Dim i ReDim per especificar el nombre d'elements
Solució 3: canvi de construcció
Aquest error es produeix habitualment quan l'usuari especifica un membre de col·lecció incorrecte o inexistent. Per tant, en lloc d’especificar els elements de l’índex, es recomana que us acosteu amb el “ Per a cadascun ... Següent ”Construir.
Utilitzant la construcció 'Per a cada ... següent'
Solució 4: comprovació del nom de la clau i de l’índex
En alguns casos, és possible que hàgiu utilitzat un formulari abreujat del subíndex i que especifiqui un element no vàlid. Per tant, es recomana utilitzar un fitxer clau vàlida nom i índex per a la col·lecció.
Utilitzant un nom de clau vàlid
2 minuts de lectura