Región actual de VBA

Este tutorial explicará cómo usar la región actual en VBA.

los Región actual La propiedad en VBA es una forma de seleccionar todas las celdas que están contenidas dentro de un Rango con el que es posible que desee trabajar. Siempre que las celdas dentro del rango sean todas consecutivas o "tocándose" entre sí, la Región actual seleccionará todas las celdas de la región.

Sintaxis de CurrentRegion

La sintaxis es muy sencilla:

1 Rango ("E11"). CurrentRegion.Select

donde especificaría la celda cuya región actual desea seleccionar y luego usar el CurrentRegion.Select propiedad para seleccionar el rango de celdas.

Obtención de la región actual

Considere la siguiente hoja de trabajo.

el siguiente subprocedimiento seleccionaría todas las celdas dentro de la base de datos

1234567 Sub FindCurrentRegion ()Atenuar como rango'establece el rango para que sea Cell E11Establecer rng = Rango ("E11")'seleccione la región actualrng.CurrentRegion.SelectEnd Sub

Si ejecutamos la rutina, todas las celdas del Región actual de la celda E11.

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

Sin embargo, si eliminamos aún más datos, podríamos terminar con el siguiente ejemplo para la región actual de la celda E11.

Poniendo el registro de información en D13, terminamos con lo siguiente:

los Región actual por lo tanto devuelve otro distancia objeto definido por la combinación más pequeña de columnas ocupadas y filas que rodean el rango que ha proporcionado.

Contar filas y columnas en la región actual

Nosotros podemos usar Región actual para contar las filas y columnas.

12345678910111213 Sub FindCurrentRegion ()Atenuar como rangoDim iRw como enteroDim iCol como entero'establecer el rangoEstablecer rng = Rango ("E11")'cuenta las filasiRw = rng.CurrentRegion.Rows.Count'cuenta las columnasiCol = rng.CurrentRegion.Columns.Count'muestra el resultado en un cuadro de mensajeMsgBox ("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 usar la propiedad de la región actual para borrar el rango de celdas.

123456 Sub ClearCurrentRegion ()Atenuar como rango'establecer el rangoEstablecer rng = Rango ("E11")rng.CurrentRegion.ClearEnd 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 usar esa variable de rango para manipular las celdas, ya sea formateando las celdas, ordenando las celdas, etc.

12345678910 Sub AssignCurrentRegionToVariable ()Atenuar como rango'establece el rango para que sea la región actual de E11Establecer rng = Rango ("E11"). CurrentRegion'colorear el fondo y el textorng.Interior.Patrtern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Verdaderorng.Font.Color = -16776961End Sub

Si ejecutamos el procedimiento anterior, ¡terminaremos con una hoja de trabajo como se muestra a continuación!

Obtención de las celdas inicial y final en la región actual

Con un código un poco más complicado, podemos obtener la primera celda y la última celda en una Región actual.

123456789101112131415161718 Sub GetStartAndEndCells ()Atenuar como rangoDim iRw como enteroDim iCol como enteroDim iColStart, iColEnd, iRwStart, iRwEnd como cadena'establece la variable de rango para que sea la región actual de E11Establecer rng = Rango ("E11"). CurrentRegion'establece la columna de inicio para el rangoiColStart = rng.Column'obtener la columna final para el rangoiColEnd = iColStart + (rng.Columns.Count - 1)'obtener la fila de inicio para el rangoiRwStart = rng.Row'obtén la última fila del rangoiRwEnd = iRwStart + (rng.Rows.Count - 1)'muestra la dirección de las filas y columnas de inicio y finalización en un cuadro de mensajeMsgBox ("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

wave wave wave wave wave