Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Última fila con VBA

Número de la última fila

Por medio del artículo: Identificar última fila en VBA

Se examinó el código:

Sub BuscarUltimaFila()
Dim ult As Integer
ult = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox ult
End Sub

En el cual la variable ult nos permite identificar el número de la fila en el cual se encuentran datos, tomando como base la columna 1  (columna A).

Localizar la última Fila

En versiones antiguas se solía emplear el siguiente código, cuyo funcionamiento, es similar al código de la última fila visto en el párrafo anterior:

Ult= Columns(“A:A”).Range(“A65536”).End(xlUp).Row

Este código toma como punto de referencia la celda A65536, esto era frecuente de realizar en la versión 2003 de Excel, debido a que esa versión tenía 65536 filas.

Podríamos considerar cambiar la celda de referencia por A1048576, y cambiar A:A por la fila que necesitemos, sin embargo este código presentaría errores, por lo que es mas conveniente emplear el código:

ult = Cells(Rows.Count, 1).End(xlUp).Row

Última fila usada en VBA (toda la hoja)

Si se requiere identificar la última fila de toda la hoja en lugar de fijarse en solo una columna en particular (como en el artículo Identificar última fila en VBA ) se debe emplear el siguiente código en VBA:

maxrow = Cells.SpecialCells(xlLastCell).Row

Donde la variable maxrow  corresponde al número de la última fila de toda la hoja en la que existe información, de forma similar,  para las columnas podríamos emplear:

maxcol = Cells.SpecialCells(xlLastCell).Column

 

Consideraciones identificar la última fila en VBA

En el caso del código  ult = Cells(Rows.Count, 1).End(xlUp).Row  debe tenerse en cuenta que su uso debe realizarse sobre la columna en la que exista información, y que además el dato siempre este disponible, es decir que no vayan a aparecer celdas en blanco al final.

Para el caso de  maxrow = Cells.SpecialCells(xlLastCell).Row  debe tomarse en cuenta que si existe una rutina de eliminación de filas antes de emplear este código se debería utilizar una macro para grabar la información de la hoja.