VBA Range.End (xlDown, xlUp, xlToRight, xlToLeft)
In this Article
Este tutorial le mostrará cómo utilizar la propiedad Range.End en VBA.
La mayoría de las cosas que se hacen manualmente en un libro u hoja de trabajo de Excel se pueden automatizar en código VBA.
Si usted tiene un rango de celdas que no están en blanco en Excel, y presiona Ctrl+Flecha abajo el cursor se moverá a la última celda no vacía de la columna en la que se encuentre. Del mismo modo, si pulsas Ctrl+Flecha arriba, el cursor se moverá a la primera celda que no esté en blanco. Lo mismo ocurre con una fila utilizando Ctrl+Flecha derecha o Ctrl+Flecha izquierda para ir al principio o al final de esa fila. Todas estas combinaciones de teclas pueden ser utilizadas dentro de su código VBA utilizando la Función End.
Sintaxis de la propiedad Range.End
La propiedad Range.End le permite moverse a una celda específica dentro de la Región Actual con la que está trabajando.
expresión.End(Dirección)
expresión es la dirección de la celda (Range) de la celda desde la que desea comenzar, por ejemplo: Range(«A1»)
End es la propiedad del Objeto Range que se controla.
Direction es la constante de Excel que puede utilizar. Hay 4 opciones disponibles – xlDown, xlToLeft, xlToRight y xlUp.
Mover a la última celda
El procedimiento que se muestra a continuación le llevará a la última celda de la región actual de celdas en la que se encuentra.
Sub ir_a_UltimaCelda()
'Moverse a la última celda ocupada en la región actual
Range("A1").End(xlDown).Select
End Sub
Contando Filas
El siguiente procedimiento permite utilizar la constante xlDown con la propiedad Range End para contar cuántas filas hay en la región actual.
Sub ir_a_UltimaFilaDelRango()
Dim rw As Integer
Range("A1").Select
'Obtener la última fila de la región actual
rw = Range("A1").End(xlDown).Row
'Mostrar cuántas filas se han utilizado
MsgBox "La última fila utilizada en este rango es " & rw
End Sub
Mientras que el de abajo contará las columnas del rango usando la constante xlToRight.
Sub ir_a_UltimaCeldaDelRango()
Dim col As Integer
Range("A1").Select
'Obtener la última columna de la región actual
col = Range("A1").End(xlToRight).Column
'Mostrar cuántas columnas se utilizan
MsgBox "La última columna utilizada en este rango es " & col
End Sub
Creación de una matriz de rangos
El siguiente procedimiento nos permite empezar en la primera celda de un rango de celdas, y luego utilizar la propiedad End(xlDown) para encontrar la última celda del rango de celdas. Podemos entonces Redimensionar nuestra matriz con el total de filas en el Rango, permitiéndonos así hacer un bucle a través del rango de celdas.
Sub llenarMatriz()
'Declarar la matriz
Dim strSuppliers() As String
'Declarar el entero para contar las filas
Dim n As Integer
'Contar las filas
n = Range("B1", Range("B1").End(xlDown)).Rows.Count
'Inicializar y rellenar la matriz
ReDim strCustomers(n)
'Declarar el número entero para el bucle
Dim i As Integer
'Rellenar la matriz
For i = 0 To n
strCustomers(i) = Range("B1").Offset(i, 0).Value
Next i
'Mostrar mensaje con los valores de la matriz
MsgBox Join(strCustomers, vbCrLf)
End Sub
Cuando ejecutemos este procedimiento, nos devolverá el siguiente cuadro de mensaje.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!