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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top