
Eu tenho um intervalo que preciso selecionar. As regiões superiores do intervalo são A2, que posso obter usando o seguinte comando -
Cells(2, 1)
A faixa inferior, posso usar os seguintes comandos -
Cells(Rows.Count, 1).End(xlUp).Row
Cells(5, Columns.Count).End(xlToLeft).Column
Como posso combinar o comando de todas as minhas células em algo que o intervalo selecionará?
tentei
range=(cells(2,1)),(Cells(Rows.Count, 1).End(xlUp).Row),(Cells(5, Columns.Count).End(xlToLeft).Column).select
mas recebo um erro de formato.
Responder1
Lembre- Cells(Rows.Count, 1).End(xlUp).Row
se retorna um número inteiro
e
Cells(5, Columns.Count).End(xlToLeft).Column
retorna um número inteiro.
Então você precisa Cells(integer,integer)
.
Como o seu está agora, ele diz range(A2),integer,integer.select
.
Você não usa select
e se for usar dois números inteiros, você precisa envolvê-los em células(). E tudo isso em range().
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 razão para select
seu alcance - apenas trabalhe rng
diretamente.