通常は以下のようなコードで最終行を求められますが、最終行が非表示セルの場合は正常に求めることができません。
MsgBox Cells(Rows.Count, 1).End(xlUp).Row
最終行のセル非表示になることが想定される場合は、以下のコードを利用することで正常に最終行を求めることができます。
サンプルコード
非表示行を含めて最終行を返却するコードです。
Function EndRowSearch(ByRef target As Range) As Long
Dim cellData As Variant: cellData = target.Resize(Rows.Count - target.Row + 1, 1)
Dim i As Long
For i = UBound(cellData) To 2 Step -1
If cellData(i, 1) <> "" Then Exit For
Next
EndRowSearch = i
End Function
上記のコードを利用して、最終行を表示するサンプルコードは以下の通りです。
MsgBox EndRowSearch(Columns(1))