
Tengo un rango que necesito seleccionar. Las regiones superiores del rango son A2, que puedo obtener usando el siguiente comando:
Cells(2, 1)
El rango inferior, lo puedo conseguir usando los siguientes comandos:
Cells(Rows.Count, 1).End(xlUp).Row
Cells(5, Columns.Count).End(xlToLeft).Column
¿Cómo puedo combinar todos los comandos de mis celdas en algo que se seleccione ese rango?
Lo intenté
range=(cells(2,1)),(Cells(Rows.Count, 1).End(xlUp).Row),(Cells(5, Columns.Count).End(xlToLeft).Column).select
pero me sale un error de formato.
Respuesta1
Recuerda Cells(Rows.Count, 1).End(xlUp).Row
que devuelve un número entero
y
Cells(5, Columns.Count).End(xlToLeft).Column
devuelve un número entero.
Así que tú necesitas Cells(integer,integer)
.
Tal como está el tuyo ahora, dice range(A2),integer,integer.select
.
No usas select
y si vas a usar dos números enteros, debes envolverlos en celdas(). Y todo dentro del rango().
Set rng = Range(Cells(2, 1), Cells((Cells(Rows.Count, 1).End(xlUp).Row), (Cells(5, Columns.Count).End(xlToLeft).Column)))
Una mejor manera de hacer esto sería
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
Ahora, no tiene ningún motivo para select
su rango, simplemente trabaje rng
directamente.