VBA: Ultima fila que contiene datos [Cualquier versión]

Septiembre 2017


Entre las versiones 2003 y 2007, el numero de lineas que puede tener una hoja Excel ha aumentado considerablemente. De aquí, los códigos VBA como:
-Versiones < 2007:
Dim UltLinea As Long    
UltLinea = Range("A65536").End(xlUp).Row


-Versiones >= 2007
Dim UltLinea As Long    
UltLinea = Range("A1048576").End(xlUp).Row


impiden el paso de tu hoja Excel de una versión a otra.

En adelante, en todas las versiones, se debe escribir:
Dim UltLinea As Long    
UltLinea = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row


o también:
Dim UltLinea As Long    
UltLinea = Range("A" & Rows.Count).End(xlUp).Row


Quizás algún día también se presente el problema con las columnas. En ese caso, puedes utilizar el código siguiente:
Dim UltCol As Integer   
UltCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column


Los códigos dados aquí, conciernen a la ultima linea que contiene datos de la columna A (Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row, Range("A" & Rows.Count).End(xlUp).Row) y la ultima columna cuya 1ra linea no es vacía (Cells(1, Cells.Columns.Count).End(xlToLeft).Column). Obviamente, puedes adaptarlos cambiando el elemento que aparece en negrita.

Consulta también

Artículo original escrito por jak58. Traducido por Carlos-vialfa. Última actualización: 7 de septiembre de 2011 a las 22:23 por Carlos-vialfa.
El documento «VBA: Ultima fila que contiene datos [Cualquier versión]» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.