excel-vba
Gamas nombradas
Buscar..
Introducción
Definir un rango con nombre
El uso de rangos con nombre le permite describir el significado de los contenidos de una celda y usar este nombre definido en lugar de una dirección de celda real.
Por ejemplo, la fórmula =A5*B5
se puede reemplazar con =Width*Height
para que la fórmula sea mucho más fácil de leer y entender.
Para definir un nuevo rango con nombre, seleccione la celda o celdas para nombrar y luego escriba el nuevo nombre en el Cuadro de nombre junto a la barra de fórmulas.
Nota: Los rangos con nombre están predeterminados en el ámbito global, lo que significa que se puede acceder a ellos desde cualquier lugar dentro del libro de trabajo. Las versiones anteriores de Excel permiten nombres duplicados, por lo que se debe tener cuidado para evitar nombres duplicados de alcance global, de lo contrario los resultados serán impredecibles. Use el Administrador de nombres de la pestaña Fórmulas para cambiar el alcance.
Usando gamas nombradas en VBA
Crear un nuevo rango denominado 'MyRange' asignado a la celda A1
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
Eliminar el rango definido por nombre
ThisWorkbook.Names("MyRange").Delete
Acceso Rango Nombrado por nombre
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
Acceder a un rango con nombre con un acceso directo
Al igual que cualquier otro rango , se puede acceder directamente a los rangos con nombre mediante una notación de acceso directo que no requiere la creación de un objeto Range
. Las tres líneas del extracto del código anterior se pueden reemplazar por una sola línea:
Call MsgBox("Width = " & [MyRange])
Nota: la propiedad predeterminada para un rango es su valor, por lo que
[MyRange]
es el mismo que[MyRange].Value
También puede llamar a los métodos en el rango. Lo siguiente selecciona MyRange
:
[MyRange].Select
Nota: una advertencia es que la notación de acceso directo no funciona con palabras que se usan en otras partes de la biblioteca de VBA. Por ejemplo, un rango llamado
Width
no sería accesible como[Width]
pero funcionaría como se espera si se accede a través deThisWorkbook.Worksheets("Sheet1").Range("Width")
Administrar rango (s) con nombre usando el administrador de nombres
Pestaña Fórmulas> grupo Nombres definidos> botón Administrador de nombres
Named Manager le permite:
- Crear o cambiar nombre
- Crear o cambiar referencia de celda.
- Crear o cambiar alcance
- Eliminar el rango con nombre existente
Named Manager proporciona una mirada rápida útil para enlaces rotos.
Arreglos de rango con nombre
Hoja de ejemplo
Código
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
Resultado