¿Cómo puedo encontrar la última fila que contiene datos en una columna específica?
¿Cómo puedo encontrar la última fila que contiene datos en una columna específica y en una hoja específica?
Aceptado
Qué tal si:
Function GetLastRow(strSheet, strColumn) As Long
Dim MyRange As Range
Set MyRange = Worksheets(strSheet).Range(strColumn & "1")
GetLastRow = Cells(Rows.Count, MyRange.Column).End(xlUp).Row
End Function
Con respecto a un comentario, esto devolverá el número de fila de la última celda incluso cuando solo una celda de la última fila tenga datos:
Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Deberías usar .End(xlup)
pero en lugar de usar 65536 quizás quieras usar:
sheetvar.Rows.Count
De esa manera funciona para Excel 2007, que creo que tiene más de 65536 filas.
Sencillo y rápido:
Dim lastRow as long
Range("A1").select
lastRow = Cells.Find("*",SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row
Uso de ejemplo:
cells(lastRow,1)="Ultima Linha, Last Row. Youpi!!!!"
'or
Range("A" & lastRow).Value = "FIM, THE END"
function LastRowIndex(byval w as worksheet, byval col as variant) as long
dim r as range
set r = application.intersect(w.usedrange, w.columns(col))
if not r is nothing then
set r = r.cells(r.cells.count)
if isempty(r.value) then
LastRowIndex = r.end(xlup).row
else
LastRowIndex = r.row
end if
end if
end function
Uso:
? LastRowIndex(ActiveSheet, 5)
? LastRowIndex(ActiveSheet, "AI")
Public Function LastData(rCol As Range) As Range
Set LastData = rCol.Find("*", rCol.Cells(1), , , , xlPrevious)
End Function
Uso:?lastdata(activecell.EntireColumn).Address