Indice en dehors de la plage d'Erreur après renommage de feuilles
J'ai fait un petit projet, qui se compose de 5 feuille excel dans, le code fonctionne très bien et j'obtiens le résultat exact aussi, mais si je renommer les feuilles de la feuille sheet1 à un autre nom, je suis Indice en dehors de la plage d'Erreur.
Qu'est-ce que la raison et ce qui doit être fait pour remédier à cela. S'il vous plaît aider.
Ci-dessous est le code
Public Sub amount_final()
Dim Row1Crnt As Long
Dim Row2Crnt As Long
With Sheets("sheet4")
Row1Last = .Cells(Rows.Count, "B").End(xlUp).Row
End With
Row1Crnt = 2
With Sheets("sheet3")
Row2Last = .Cells(Rows.Count, "B").End(xlUp).Row
End With
- Merci de poster votre code ainsi
- Veuillez coller ici votre code
Vous devez vous connecter pour publier un commentaire.
Il n'y a rien de mal avec le code en soi. Vous obtiendrez
Subscript out of range
erreur si Excel n'est pas en mesure de trouver un particulier de la feuille qui est assez évident puisque vous l'avez renommé. Par exemple, si vous renommez votre feuille "Feuil3" à "SheetXYZ" Excel ne sera pas en mesure de le trouver.Le seul moyen d'éviter ce genre d'erreurs est d'utiliser nom de CODE de la feuilles. Voir Instantané
Ici, nous avons une feuille qui a un nom "Nom d'Échantillon avant de le Renommer"
Donc considérer ce code
Le même code peut être écrit comme
Maintenant, peu importe combien de fois vous renommez la feuille, le code ci-dessus va travailler toujours 🙂
HTH
Sid
La question fondamentale est que vous faites référence à des feuilles à l'aide de leurs noms communs et non pas de leurs noms de code. Chaque fois que vous consultez Sheets("feuil4"), vous êtes en s'appuyant sur la feuille d'avoir ce nom dans Excel. Les noms de code sont les noms attribués dans Visual Basic pour l'utilisateur final ne pas interagir avec eux en tant que développeur, vous pouvez modifier le Excel des noms à tout moment
En utilisant des noms de code est couvert à près de 9:40 dans ce L'aide d'Excel vidéo. Vous remarquerez qu'ils sont plus rapide à taper que l'Excel noms ne nécessitent pas les Fiches de l'()' qualifier
Je ne pouvais pas voir Sheets("Feuil1") dans l'exemple de code, mais vous pouvez passer à des noms de code pour toutes les feuilles très rapidement par rechercher/remplacer tous les exemples, par exemple, de 'Sheets("Feuil2"). " par " Feuil2.'
Reportez-vous à la fiche par leur nom de code à la place. Ils sont mis à la Feuille1, Feuille2, etc en tant que par défaut, mais vous pouvez les renommer dans la fenêtre des Propriétés pour chaque feuille, si vous le souhaitez. De cette façon, vous pouvez écrire votre code comme ci-dessous au lieu de cela, indépendamment de ce que vous nommez les feuilles.
Je voulais partager mon expérience de combattre ce problème. Voici l'erreur que j'ai commise:
Correction:
Cette résolu.
J'ai rencontré cette erreur plus tôt aujourd'hui, mais ne pouvait pas utiliser toute solution ci-dessus, je n'ai toutefois finalement réussi à le résoudre moi-même.
Ma situation est que j'avais une liste figurant dans la colonne A. Pour chaque cellule avec une valeur que j'ai stocké la valeur dans une variable, a créé une nouvelle feuille et l'a nommé la plaque en fonction de la valeur stockée dans la variable.
Un peu plus tard dans le code que j'ai essayé de sélectionner la fonction nouvellement créée de la feuille en utilisant le code:
J'ai rencontré le "Subscript out of range" d'erreur et je ne pouvais pas comprendre pourquoi. J'ai utilisé le même code avant de avec succès.
Je n'ai toutefois le résoudre par la coulée de la variable une chaîne de caractères. Déclarer la variable comme une chaîne de caractères n'a pas l'air de fonctionner pour moi.
Donc, si quelqu'un d'autre rencontre de cette erreur et vous voulez quelque chose à essayer, peut-être que cela fonctionnera pour vous: