範囲なら、Offsetじゃなくて、Resizeを使うべきでしたね。
Sub Test1R()
Dim i As Long
i = 10
MsgBox Range("A1").Resize(i).Address
MsgBox Range("A1").Resize(i + 1).Address
End Sub
Sub Test3()
Dim bkA As Workbook
Dim shtA As Worksheet
Dim c As Long
Set bkA = Workbooks.Open("D:\元データ.xls")
c = 1
For Each shtA In bkA.Worksheets
Call SubCopy(shtA, c)
c = c + 50
Next shtA
End Sub
Sub SubCopy(ByRef Arg1 As Worksheet _
, ByVal Arg2 As Long)
Arg1.Range("A3:I50").Copy _
Destination:=ThisWorkbook.Worksheets(1).Cells(Arg2, "A")
End Sub