指定位置(C2)から、列の下(C18)までのRangeを取得します。
Range型に範囲(C2:C18)がセットされるようにします。Range に対して選択をしています。

【サンプルプログラム】
Sub SapmelProgram()
Dim rng As Range
' C2からの最終行(下から)までのRangeを取得
Set rng = GetLastRowRange(ActiveSheet, "C2")
' 取得したRangeを選択状態にする
rng.Select
End Sub
【関数化】
' ------------------------------------------------------------
' 説明:指定した列(列番号名)の最終行(下から)までのRangeを取得
' 引数:1:処理対象のワークシート 省略時はActiveSheet
' 2:基準となる Range を指定 省略時は "A1"
' 戻値:指定した位置から、列の最終行までを選択したRange
' ------------------------------------------------------------
' 指定した列(列番号名)の最終行(下から)までのRangeを取得
Function GetLastRowRange(Optional ByVal ws As Worksheet = Nothing, Optional column As String = "A1") As Range
Dim rng1 As Range
Dim rng2 As Range
If ws Is Nothing Then
Set ws = ActiveSheet
End If
' 指定のRangeをセット
Set rng1 = Range(column)
' 指定行の一番下までをセット
Set rng2 = Range(Cells(Rows.Count, rng1.column).Address)
' 指定のRangeから最終行(下から)までを範囲とする
Set GetLastRowRange = rng1.Resize(rng2.End(xlUp).Row - rng1.Row + 1)
End Function


コメント