Comment corriger l'erreur «Indice hors limites» dans Visual Basic pour Applications?



Essayez Notre Instrument Pour Éliminer Les Problèmes

Visual Basic pour Applications (VBA) est une implémentation du langage de programmation Visual Basic développé par Microsoft. VBA peut être utilisé pour activer les UDF, automatiser les tâches et accéder à WinAPI via des DLL. Cependant, assez récemment, de nombreux rapports sont arrivés où les utilisateurs ne peuvent pas exécuter certaines commandes et un ' Indice hors plage, erreur 9 »Apparaît en essayant de le faire.



Erreur d'indice hors plage



Quelles sont les causes de l'erreur «Indice hors plage» dans VBA?

Après avoir reçu de nombreux rapports de plusieurs utilisateurs, nous avons décidé d'étudier le problème et avons conçu un ensemble de solutions pour le résoudre complètement. Nous avons également examiné les raisons pour lesquelles il est déclenché et les avons répertoriées comme suit.



  • Élément non existant: Dans certains cas, il est possible que vous ayez référencé un élément de la commande qui n’existe pas. Il est possible que l'indice soit plus grand ou plus petit que la plage d'indices possibles ou que les dimensions n'aient pas été affectées au tableau à ce stade de l'application.
  • Éléments non définis: Il est possible que vous n'ayez pas identifié le nombre d'éléments dans votre code, il est important que le nombre d'éléments dans un tableau soit défini à l'aide des commandes «Dim» ou «ReDim».
  • Membre de collection incorrect: Dans certains cas, l'utilisateur peut avoir référencé un membre de collection qui n'existe pas. Si une référence incorrecte est faite vers le membre de la collection, cette erreur peut être déclenchée.
  • Script de sténographie: Il est possible que vous ayez utilisé une forme abrégée d'indice et qu'elle ait implicitement spécifié un élément qui n'était pas valide. Il est important d'utiliser un nom de clé valide.

Maintenant que vous avez une compréhension de base de la nature du problème, nous allons passer aux solutions. Assurez-vous de les mettre en œuvre dans l'ordre spécifique dans lequel ils sont présentés pour éviter les conflits.

Solution 1: vérification des baies

Il est possible que vous ayez défini une valeur incorrecte pour l'élément Array. Par conséquent, il est recommandé de revérifier la valeur que vous avez définie pour l'élément Array et de vous assurer qu'elle est la bonne. Assurez-vous également de vérifier la déclaration du tableau et Vérifier les limites supérieure et inférieure. Si les baies ont été redimensionnées, assurez-vous d'utiliser le LBound et UBound fonctions pour conditionner les accès. Vérifiez l'orthographe du nom de la variable si l'index est une variable.

Tableau dans VBA Excel



Solution 2: spécification du nombre d'éléments

Dans certains cas, il est possible que vous n'ayez pas défini le nombre d'éléments dans votre code en raison desquels l'erreur est déclenchée. Il est recommandé de spécifier le nombre d'éléments dans le tableau à l'aide du Aucun ou ReDim les fonctions.

Utilisation de Dim et ReDim pour spécifier le nombre d'éléments

Solution 3: Changer la structure

Cette erreur est généralement déclenchée lorsque l'utilisateur spécifie un membre de collection incorrect ou inexistant. Par conséquent, au lieu de spécifier les éléments d'index, il est recommandé d'approcher avec le ' Pour chaque… Suivant ”Construire.

Utilisation de la construction «For Each… Next»

Solution 4: vérification du nom de clé et de l'index

Dans certains cas, il est possible que vous ayez utilisé une forme abrégée de l'indice et qu'elle spécifie un élément non valide. Par conséquent, il est recommandé d'utiliser un clé valide Nom et indice pour la collection.

Utilisation d'un nom de clé valide

2 minutes de lecture