最終データの取得

With ActiveSheet.UsedRange
    MaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
    MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With
No.8 ワークシートの最終行、最終列を取得する

これはスバラシイ。いろいろな方法が分かりやすい説明で載っているので、必要に応じた取得方法を選べる。非常に参考になります。