Lembre-se de que Cells(Rows.Count, 1).End(xlUp).Row retorna um inteiro
e
Cells(5, Columns.Count).End(xlToLeft).Column retorna um inteiro.
Então você precisa de Cells(integer,integer) .
Como o seu está agora, leia range(A2),integer,integer.select .
Você não usa select e, se for usar dois inteiros, precisará envolvê-lo em células (). E a coisa toda no intervalo ().
Set rng = Range(Cells(2, 1), Cells((Cells(Rows.Count, 1).End(xlUp).Row), (Cells(5, Columns.Count).End(xlToLeft).Column)))
Uma maneira melhor de fazer isso seria
Sub test()
Dim rng As Range
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim lastcol As Integer
lastcol = Cells(5, Columns.Count).End(xlToLeft).Column
Set rng = Range(Cells(2, 1), Cells(lastrow, lastcol))
End Sub
Agora, você não tem motivo para select do seu intervalo - basta trabalhar com rng diretamente.