| 
    
     |  | こんにちは。かみちゃん です。 
 >データはA列からN列まであります。
 >行はその時々で不特定です。
 
 求めたい行の範囲のA列の最終行には必ずデータが入っている場合、
 つまり、求めたい範囲がA1:N10の場合、A10セルにはデータが入っているのであれば、
 Endプロパティを使って、以下のような感じになります。
 
 Sub Sample1()
 MsgBox Range("A1", Range("A" & Rows.Count).End(xlUp)).Resize(, 14).Address
 End Sub
 
 汎用性を求めるならば、以下のような書き方もできます。
 Sub Sample2()
 With Range("A1")
 MsgBox .Resize(.Offset(Rows.Count - .Row).End(xlUp).Row - .Row + 1, 14).Address
 End With
 End Sub
 
 ただし、A〜N列の間の最終行がバラバラで、時によって違う場合や、
 最終行が、数式で""という空白の結果になっている場合などは、Endプロパティ
 による判定ができませんので、以下のような方法になります。
 
 Sub Sample3()
 Dim FR As Range
 
 With Columns("A:N")
 Set FR = .Find(What:="*", After:=.Cells(1, 1), LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
 MsgBox Range(.Cells(1, 1), FR).Columns(1).Resize(, 14).Address
 End With
 End Sub
 
 |  |