Использование свойства SpecialCells
диапазона:
Range("A3:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address).Select
Это будет выбирать блок до последней использованной ячейки.
Редактировать: включить его в вашу программу, чтобы получитьсо второго до последнего выполните некоторые строковые манипуляции с последней ячейкой.
Dim str, str1, str2, add As String
Dim index, num As Integer
str = Range("A1").SpecialCells(xlCellTypeLastCell).Address 'returns say $j$20
index = InStr(2, str, "$") 'find the second dollar sign
str1 = Left(str, index) 'gets the string "$j$"
str2 = Mid(str, index + 1) 'get the string "20"
num = CInt(str2) 'convert "20" to 20
num = num - 1
add = str1 & CStr(num) 'reattach to form "$j$19"
Range("A3:" & add).Select