Comment obtenez-vous une plage pour retourner son nom?
-
26-09-2019 - |
Question
Dim sampleRange as Range
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4)
sampleRange.Name = "Range1"
MsgBox sampleRange.Name
Le code ci-dessus montre l'adresse réelle de la plage, pas le nom. Pourquoi?
Comment puis-je obtenir une plage nommée pour retourner son nom?
La solution
Pour une plage, le nom n'est pas une chaîne, il est un objet nom, que vous prenez alors la propriété Name pour obtenir la chaîne:
MsgBox sampleRange.Name.Name
Autres conseils
sampleRange.Name = "Plage1" pour nommer la plage est une mauvaise pratique
Il ne fonctionne que parce que le nom (la chaîne contenant « Le nom ») est la propriété par défaut de nom.
Beaucoup mieux sampleRange.Name.Name = "Plage1"
Il est jamais une bonne pratique d'utiliser la propriété par défaut sans s'y référer explicitement.
Une bonne programmation contrôle exactement l'environnement en se référant explicitement à la propriété requise.
Elimine ambiguïté créée la question ici. Elimine le problème créé si la propriété par défaut est modifiée dans une mise à jour future.