VBA Región Actual

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 12, 2022

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.

Hoja de Trabajo para Región Actual

 

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.

Seleccionar Región Actual a Través de VBA

 

Si eliminamos el contenido de las celdas contiguas, y volvemos a ejecutar la rutina, se seleccionará lo siguiente como región actual.

Seleccionar Región Actual a Través de VBA Ejemplo2

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.

Seleccionar Región Actual a Través de VBA Ejemplo3

 

Poniendo la información en D13, terminamos con lo siguiente:

Seleccionar Región Actual a Través de VBA Ejemplo4

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.

Mostrar Cuenta de Filas y Columnas Región Actual

 

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

Asignar Region Actual a Variable y Colorear

 

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

Mostrar Rango de Filas y Columnas Región Actual

 

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples