Como continuación del post anterior: 'VBA: Trabajando sobre rangos discontinuos', hoy veremos una variante algo más abierta.
Trabajaremos sobre rangos discontinuos mediante arrays en nuestro procedimiento.
Supongamos nuestros tres rangos dscontinuos (igual que en l post anterior):
B2:B6
D2:D6
y F2:F6
Pretendemos recorrer esas celdas... y para ello insertaremos en el siguiente procedimiento en un módulo estándar:
Se observa lo simple del proceso... nos permite recorrer las diferentes celdas de nuestros rangos...
Si accedes a la venta de inmediato del editor de Vb (presiona Ctrl+g) veremos algo así (para mi ejemplo):
$B$2 10
$B$3 20
$B$4 30
$B$5 40
$B$6 50
$D$2 100
$D$3 200
$D$4 300
$D$5 400
$D$6 500
$F$2 1000
$F$3 2000
$F$4 3000
$F$5 4000
$F$6 5000
Una alternativa a Application.Union que vimos ;-)
Una importante cualidad de esta forma de trabajar es que nos permite operar sobre rangos discontinuos en diferentes hojas!!.
Trabajaremos sobre rangos discontinuos mediante arrays en nuestro procedimiento.
Supongamos nuestros tres rangos dscontinuos (igual que en l post anterior):
B2:B6
D2:D6
y F2:F6
Pretendemos recorrer esas celdas... y para ello insertaremos en el siguiente procedimiento en un módulo estándar:
Sub UnirRangosConArrays() 'definimos la matriz con la que cargaremos los rangos Dim aRng(1 To 3) As Range 'definimos los rangos Set aRng(1) = Range("B2").CurrentRegion Set aRng(2) = Range("D2").CurrentRegion Set aRng(3) = Range("F2").CurrentRegion 'recorremos la matriz cargada, con los distintos rangos discontinuos For i = LBound(aRng) To UBound(aRng) 'recorremos cada celda de cada rango For Each celda In aRng(i) 'llevamos datos a la ventana de inmediato Debug.Print celda.Address, celda.Value Next celda Next i End Sub
Se observa lo simple del proceso... nos permite recorrer las diferentes celdas de nuestros rangos...
Si accedes a la venta de inmediato del editor de Vb (presiona Ctrl+g) veremos algo así (para mi ejemplo):
$B$2 10
$B$3 20
$B$4 30
$B$5 40
$B$6 50
$D$2 100
$D$3 200
$D$4 300
$D$5 400
$D$6 500
$F$2 1000
$F$3 2000
$F$4 3000
$F$5 4000
$F$6 5000
Una alternativa a Application.Union que vimos ;-)
Una importante cualidad de esta forma de trabajar es que nos permite operar sobre rangos discontinuos en diferentes hojas!!.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.