¿Como navegar un rango?

25/07/2003 - 21:16 por SpiderBoy | Informe spam
Tengo un modulo en VBA que permite la usuario seleccionar 2 rangos del mismo
tamaño (para mantener sencillo el asunto)
Ya que tengo almacenados los rangos en variables RAN1, RAN2, necesito
compara RAN2 con RAN1 para ver si cada celda en RAN2 es igual a su
correspondiente en RAN1 multiplicado por 6 (ej. A1= Z1*6 y A10=Z10*6)
Utilizando For Each.. Next puedo realizar este proceso, el problema es que
no se como incrementar o la celda actual en RAN2, para hacer la comparacion.
La solucion obvia, es por lo tanto utilizar 2 For para hacer las
comparaciones, el problema es que de esta forma, A1 se compararia con todo
RAN1 y eso para el volumen de datos que estare manejando es lento (ademas de
ser poco elegante y la computadora donde esta la macro es un Pentium con 16
en RAM que a duras penas ejecuta Excel).

En resumen: Necesito ayuda para ver como se puede navegar a traves de un
objeto Range.
 

Leer las respuestas

#1 Héctor Miguel
25/07/2003 - 23:00 | Informe spam
¿Que tal, jrav?

... modulo ... seleccionar 2 rangos del mismo tamaño ... almacenados ... en variables RAN1, RAN2 ... comparar
... si cada celda en RAN2 es igual a su correspondiente en RAN1 multiplicado por 6 (ej. A1= Z1*6 y A10=Z10*6)
... For Each.. Next ... problema ... no se como incrementar o la celda actual en RAN2, para hacer la comparacion.
... solucion obvia ... utilizar 2 For para hacer las comparaciones
... problema es que de esta forma, A1 se compararia con todo RAN1 y eso ... es lento [...]
... como se puede navegar a traves de un objeto Range.



==> Si la comparacion sera horizontal (1 con 1, 2 con 2, 3 con 3, etc.) y seguros de que ambos rangos son iguales,
(creo que) seria mas rapido un contador para el numero de celdas (o filas?) en los rangos (iguales?). Entonces (p.e.):
== Suponiendo que a las variables RAN1 y RAN2 se les asigno el tipo de datos "Range" = Dim Sig as Long
For Sig = 1 to RAN1.Rows.Count
If RAN2.Cells(Sig) = RAN1.Cells(Sig) * 6 Then
' Aqui las acciones si la comparacion es verdadero '
Else
' Aqui las acciones si la comparacion es falso '
End If
Next
_______
Saludos,
Héctor.
MS-MVP

Preguntas similares