直到現在,要知道哪一行是資料的最后一行,我使用以下代碼:
Function GetPrimeraFilaLibre(paramNombreHoja As String, paramColumnaReferencia As String)
GetPrimeraFilaLibre = Sheets(paramNombreHoja).Range(paramColumnaReferencia & "65536").End(xlUp).Offset(1, 0).Row
End Function
此函式將我想知道最后一行的作業表作為引數,并將我將檢查它是否有資料的參考列作為第二個引數。
如果存在隱藏行,此功能不起作用的問題。我想知道最后一行的資料,不管它是否隱藏。
謝謝。
uj5u.com熱心網友回復:
Range.Find可用于回傳最后一行,無論是否有隱藏行。
Function GetPrimeraFilaLibre(paramNombreHoja As String, paramColumnaReferencia As String) As Long
With Sheets(paramNombreHoja).Columns(paramColumnaReferencia)
GetPrimeraFilaLibre = .Find(What:="*", After:=.Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
End With
End Function
Function GetLastRow(SheetName As String, ColumnNameOrIndex As String) As Long
With Sheets(SheetName).Columns(ColumnNameOrIndex)
GetLastRow = .Find(What:="*", After:=.Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
End With
End Function
附錄
正如 VBasic2008 指出的那樣,我們需要對處理MergedCells.
Function GetLastRow(SheetName As String, ColumnNameOrIndex As String) As Long
Dim Target As Range
With Sheets(SheetName).Columns(ColumnNameOrIndex)
Set Target = .Find(What:="*", After:=.Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
End With
GetLastRow = Target.MergeArea.Rows.Count Target.Row - 1
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/452340.html
上一篇:使用標題移動文本
