VBA Range.End (xlDown, xlUp, xlToRight, xlToLeft)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 31, 2022

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.

 

Funcion desplazarse Range.End

 

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.

Matriz de rangos

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! vba save as


Learn More!
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