Veremos un ejemplo hoy de como trabajar sobre rangos discontinuos desde nuestras macros.
Para ello haremos uso de una de las propiedades del objeto Application que vimos en este otro post
Emplearemos la propiedad: Application.Union para resolver esta cuestión.
La idea del ejemplo de hoy e ser capaz de recorrer con n solo bucle un rango de celdas discontinuo..(B2:B6, D2:D6 y F2:F6)
Para ello crearemos nuestro procedimiento en un módulo estándar:
Listo... rápido y simple.
Podemos comprobar, al ejecutar nuestra macro, que el resultado es el esperado...
solo recorremos las celdas de los tres rangos definidos.
Más adelante expondré una alternativa con arrays más eficiente...
Para ello haremos uso de una de las propiedades del objeto Application que vimos en este otro post
Emplearemos la propiedad: Application.Union para resolver esta cuestión.
La idea del ejemplo de hoy e ser capaz de recorrer con n solo bucle un rango de celdas discontinuo..(B2:B6, D2:D6 y F2:F6)
Para ello crearemos nuestro procedimiento en un módulo estándar:
Sub UnionRangosDiscontinuos() 'Unir tres rangos discontinuos Dim rng1 As Range, rng2 As Range, rng3 As Range 'definimos los tres rango discontinuos a unir Set rng1 = Range("B2").CurrentRegion Set rng2 = Range("D2").CurrentRegion Set rng3 = Range("F2").CurrentRegion 'los unimos con la propiedad .Unión !!! Dim rngUnido As Range Set rngUnido = Application.Union(rng1, rng2, rng3) 'demostramos que el recorrido se hace sobre el rango discontinuo For Each celda In rngUnido With celda .Font.Bold = True .Interior.Color = vbYellow End With Next celda End Sub
Listo... rápido y simple.
Podemos comprobar, al ejecutar nuestra macro, que el resultado es el esperado...
solo recorremos las celdas de los tres rangos definidos.
Más adelante expondré una alternativa con arrays más eficiente...
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.