VBA Región Actual
In this Article
Este tutorial explicará cómo usar la Región Actual en VBA.
La propiedad CurrentRegion en VBA es una forma de seleccionar todas las celdas que están contenidas dentro de un Rango con el que se quiere trabajar. Siempre que las celdas dentro del rango sean consecutivas o se «toquen» entre sí, la CurrentRegion seleccionará todas las celdas de la región.
Sintaxis de CurrentRegion
La sintaxis es muy sencilla:
Range("E11").CurrentRegion.Select
donde se especifica la celda cuya región actual se desea seleccionar y luego se utiliza la propiedad CurrentRegion .Select para seleccionar el Rango de Celdas.
Obtener la Región Actual
Considere la siguiente hoja de trabajo.
El siguiente subprocedimiento seleccionaría todas las celdas dentro de la tabla de Excel.
Sub BuscarRegionActual()
Dim rng As Range
'Establecer que el rango sea la celda E11
Set rng = Range("E11")
'Selecciona la región actual
rng.CurrentRegion.Select
End Sub
Si ejecutamos la rutina, se seleccionarán todas las celdas de la CurrentRegion de la celda E11.
Si eliminamos el contenido de las celdas contiguas, y volvemos a ejecutar la rutina, se seleccionará lo siguiente como región actual.
Sin embargo, si eliminamos aún más datos, podríamos terminar con el ejemplo siguiente para la región actual de la celda E11.
Poniendo la información en D13, terminamos con lo siguiente:
Por lo tanto, CurrentRegion devuelve otro objeto de rango definido por la combinación más pequeña de columnas y filas ocupadas que rodean el Rango que ha suministrado.
Contando las Filas y Columnas de la Región Actual
Podemos utilizar CurrentRegion para contar las filas y columnas.
Sub EncontrarRegionActual()
Dim rng As Range
Dim iRw As Integer
Dim iCol As Integer
'Establecer el rango
Set rng = Range("E11")
'Contar las filas
iRw = rng.CurrentRegion.Rows.Count
'Contar las columnas
iCol = rng.CurrentRegion.Columns.Count
'Muestra el resultado en un cuadro de mensaje
MsgBox ("Tenemos " & iRw & " filas y " & iCol & " columnas en nuestra región actual")
End Sub
Si ejecutamos el procedimiento, aparecerá el siguiente cuadro de mensaje.
Borrar la Región Actual
También podemos utilizar la propiedad región actual para borrar el rango de celdas.
Sub BorrarRegionActual()
Dim rng As Range
'Establecer el rango
Set rng = Range("E11")
rng.CurrentRegion.Clear
End Sub
Asignar la Región Actual a una Variable
También podemos asignar toda la región actual a una variable de rango, y luego utilizar esa variable de rango para manipular las celdas – ya sea formateando las celdas, ordenando las celdas, etc.
Sub AsignarRegionActualAVariable()
Dim rng As Range
'Establecer el rango para que sea la región actual de E11
Set rng = Range("E11").CurrentRegion
'Colorea el fondo y el texto
rng.Interior.Pattern = xlSolid
rng.Interior.Color = 65535
rng.Font.Bold = True
rng.Font.Color = -16776961
End Sub
Si ejecutamos el procedimiento anterior, terminaremos con una hoja de cálculo como la que se muestra a continuación
Obtener las Celdas de Inicio y Final de la Región Actual
Con un código un poco más complicado, podemos obtener la primera y la última celda de una Región Actual.
Sub ObtenerCeldasInicialesYFinales()
Dim rng As Range
Dim iRw As Integer
Dim iCol As Integer
Dim iColStart, iColEnd, iRwStart, iRwEnd As String
'Establecer la variable de rango para que sea la región actual de E11
Set rng = Range("E11").CurrentRegion
'Establecer la columna de inicio para el rango
iColStart = rng.Column
'Obtener la columna final del rango
iColEnd = iColStart + (rng.Columns.Count - 1)
'Obtener la fila inicial del rango
iRwStart = rng.Row
'Obtener la fila final del rango
iRwEnd = iRwStart + (rng.Rows.Count - 1)
'Mostrar la dirección de las filas y columnas iniciales y finales en un cuadro de mensaje
MsgBox ("El rango comienza en " & Cells(iRwStart, iColStart).Address & " y termina en " & Cells(iRwEnd, iColEnd).Address)
End Sub
Cuando ejecutamos el código anterior, aparecerá el siguiente cuadro de mensaje