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.