Pregunta

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 de la gama, no el nombre. ¿Por qué?
¿Cómo consigo un rango con nombre para devolver su nombre?

¿Fue útil?

Solución

Para obtener un rango, 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

Otros consejos

sampleRange.Name = "Rango1" para nombrar el rango es una mala práctica

Sólo funciona porque el nombre (la cadena que contiene "El Nombre") es la propiedad predeterminada de nombre.

Mucho mejor sampleRange.Name.Name = "Rango1"

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

Una buena programación controla con exactitud el entorno, haciendo referencia explícita a la propiedad requerida.

Elimina la ambigüedad que creó el problema aquí. Elimina el problema crea si la propiedad predeterminada se cambia en una futura actualización.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top