Encontrar la última celda ocupada en una fila o columna de la hoja Excel

Una de las actividades más comunes en Excel/VBA es escribir datos sobre una hoja de cálculos. Para ello, muchas veces deberás saber cual es la última celda con datos en la hoja de Excel y desplazarte una casilla en la hoja de cálculo (en dirección vertical u horizontal según lo requieras) para encontrar la primera celda disponible, por lo que estamos seguros de que este Tip será de gran utilidad para ti.

Figura 1. Última celda ocupada.

Identificación por Loop

Aunque no es la forma más práctica ni eficiente, por el tiempo de cómputo que esta conlleva, la secuencia por loop en VBA puede ser usada para encontrar la última celda ocupada. Esta se pasea por todas las celdas de un rango (por una columna o fila) y evalúa en cada caso si cumple la condición de celda vacía. El código podría ser como se indica en el siguiente ejemplo, en el cual se escribe en la primera celda disponible luego de encontrar la última fila con datos en el libro Excel:

Sub getLastRow()
i = 1
 Do
     If IsEmpty(Cells(i, 1)) = True Then Exit Do
     i = i + 1
 Loop
lastRow = i - 1
Cells(lastRow + 1, 1) = "First available cell" 
End Sub

También es posible hacer el Loop avanzando en columnas en la hoja de trabajo, para conocer la última columna ocupada y escribir en la primera columna disponible, como se muestra a continuación:

Sub getLastColumn()
 j = 1
 Do
     If IsEmpty(Cells(1, j)) = True Then Exit Do
     j = j + 1
Loop 
lastColumn=j - 1
Cells(1, lastColumn + 1) = "First available cell" 
End Sub

Búsqueda directa

Por ser la forma más rápida y de menor costo computacional esta es nuestra SmartCode Recomendation. Consiste en aplicar los comandos VBA descritos a continuación para encontrar la última celda ocupada en una columna específica de la hoja Excel, o la última celda ocupada en una fila específica. Para encontrar la última celda ocupada en una columna puedes utilizar los comandos que describen a continuación:

Variable= celda(Rows.Count, “Referencia de Columna“).End(xlUp).Row

Ejemplo:

Sub getLastRow()

lastRow = Cells(Rows.Count, "A").End(xlUp).Row 
Cells(lastRow + 1, 1) = "First available cell"

End Sub

Similarmente, para encontrar la última celda ocupada en una una fila los comandos serian:

Variable = Cells(Índice de fila, Columns.Count).End(xlToLeft).Column

Ejemplo:

Sub getLastColumn()

lastColumn = Cells(1, Columns.Count).End(xlToLeft).Column 
Cells(1, lastColumn + 1) = "First available cell"

End Sub

 

Quieres saber más? Contáctanos…

 

Encontrar la última celda ocupada en una fila o columna de la hoja Excel

También te puede interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *