Hola a tod@s:
Tengo una hoja de Excel, en la que mediante código VBA le pido a Excel
que busque un número en una matriz de números de 15 columnas y 5400
filas (esta matriz está escrita físicamente en el rango e17:s5416 de
una hoja de cálculo). Esta búsqueda la hago empleando el método .Find,
tal que así:
Set c = .Find(NUMERO, LookIn:=xlValues,
lookat:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.ColorIndex = 4
direccion = c.Address
t = Len(direccion)
direccion = Right(direccion, t - 3)
Range("t" & direccion).Value = Range("t" &
direccion).Value + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <>
firstAddress
End If
El número buscado puede aparecer muchas veces en la matriz y cada vez
que encuentra una coincidencia, la celda dónde está ese número se
ilumina en verde. Recorrer esta matriz le lleva aproximadamente 15
segundos, y necesito que lo haga en menos tiempo. ¿Alguien conoce
alguna manera?
Muchas gracias por adelantado por vuestra atención.
P.S.: He comentado casi todas las líneas del código anterior para
probar si alguna demoraba el programa y la línea que le lleva más
tiempo es, lógicamente, cuando busca la(s) siguiente(s)
coincidencia(s): Set c = .FindNext(c)
Leer las respuestas