Référence Excel feuille de travail par nom?
J'ai le nom d'une feuille de calcul stockée comme une chaîne de caractères dans une variable. Comment puis-je effectuer une opération sur cette feuille de calcul?
J'ai pensé que je ferais quelque chose comme ceci:
nameOfWorkSheet = "test"
ActiveWorkbook.Worksheets(nameOfWorkSheet).someOperation()
Comment puis-je obtenir ce fait?
source d'informationauteur Jonson Bylvaklov
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs options, y compris à l'aide de la méthode de vous démontrer, À l'aide, et l'aide d'une variable.
Ma préférence est l'option 4 ci-dessous:
Dim
une variable de typeWorksheet
et de stocker la feuille de calcul et d'appeler les méthodes de la variable ou de la transmettre à des fonctions, cependant l'une des options de travail.Le meilleur moyen est de créer une variable de type
Worksheet
affecter la feuille de calcul et l'utiliser chaque fois que le VBA serait implicitement utiliser leActiveSheet
.Cela vous aidera à éviter des bugs qui finira par apparaître lorsque votre programme prend de l'ampleur.
Par exemple quelque chose comme
Range("A1:C10").Sort Key1:=Range("A2")
est bon lorsque la macro ne fonctionne que sur une seule feuille. Mais vous finirez par développez votre macro pour travailler avec plusieurs feuilles, de savoir que cela ne fonctionne pas, l'ajuster àShTest1.Range("A1:C10").Sort Key1:=Range("A2")
... et de savoir que cela ne fonctionne toujours pas.Ici est la bonne manière:
De se développer sur de Ryan réponse, lorsque vous déclarez des variables (à l'aide de Dim), vous pouvez tricher un peu en utilisant la saisie de texte prédictive fonctionnalité dans le VBE, comme dans l'image ci-dessous.
Si elle figure dans cette liste, vous pouvez affecter un objet de ce type à une variable. Donc pas juste une Feuille de calcul, comme Ryan l'a souligné, mais aussi un Graphique, la Plage, le Classeur, la Série et sur et sur.
Vous définissez cette variable est égale à l'objet que vous souhaitez manipuler et ensuite, vous pouvez appeler les méthodes, les faire passer à des fonctions, etc, tout comme Ryan a souligné pour cet exemple. Vous pourriez avoir quelques accrocs quand il s'agit de collections vs objets (Graphique ou de Tableaux, la Plage ou les Plages, etc) mais avec essais et erreurs, vous pourrez l'obtenir pour vous.