2010-09-02 10 views
12
Dim sampleRange as Range 
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4) 
sampleRange.Name = "Range1" 
MsgBox sampleRange.Name 

El código anterior mostrará la dirección real del rango, no el nombre. ¿Por qué?
¿Cómo obtengo un rango con nombre para devolver su nombre?¿Cómo se obtiene un rango para devolver su nombre?

Respuesta

37

para una serie, nombre no es una cadena que es un objeto Nombre, que a continuación, tomar la propiedad Name para obtener la cadena:

MsgBox sampleRange.Name.Name 
+1

Gracias, Lance! Busqué en Internet por mucho tiempo y no pude encontrar esa respuesta. – GenericJam

+1

mi búsqueda fue corta y suave gracias a su respuesta! – Nick

+0

No estoy seguro de editar la respuesta de forma segura, pero creo que en VBA7.1, la respuesta no se aplica: pls leen 'MsgBox sampleRange.Names.Name' en su lugar. – hornetbzz

0

sampleRange.Name = "Rango1" a nombre de la gama es una práctica deficiente

Solo funciona porque Name (la cadena que contiene "The Name") es la propiedad predeterminada de Name.

Mucho mejor sampleRange.Name.Name = "Rango1"

Nunca es una buena práctica usar la propiedad predeterminada sin referirse explícitamente a él.

La buena programación controla exactamente el entorno al referirse explícitamente a la propiedad requerida.

Elimina la ambigüedad al crear el problema aquí. Elimina el problema creado si se cambia la propiedad predeterminada en una actualización futura.

Cuestiones relacionadas