¿Cómo se obtiene un rango para volver a su nombre?
-
26-09-2019 - |
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?
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.