Pregunta: | 13428 - MéTODO FIND DE EXCEL |
Autor: | xnmiranda xnmiranda |
Tengo esta inquietud, a ver si alguien me puede ayudar:
Estoy leyendo mediante Visual Basic una hoja de Excel, a esta hoja le he aplico un autofiltro y obtengo un rango de las celdas. Ok, utilizo este rango y lo leo así: termino = Now For each r in rango_filtro Set rango_resultado = rango_de_una_hoja.Find _ (r.Value,,xlValue,xlWhole,xlByColumns) If rango_resultado Is Nothing Then ...... End If debug.print format (Now - termino, "hh:mm:ss") Next Claro que hago uso de Option Explicit y declaré todas las variables. El problema es que a veces lee n cantidad de celdas y por cada una hay una disminución proporcional del tiempo en que lee, O sea, que en un inicio lee 5 celdas por segundo y luego a medida que lee más, el tiempo disminuye y disminuye (4 por segundo, 3 por segundo, 2 por segundo, y así sucesivamente) llega incluso a leer una celda por cada 10 segundos. Porque pasa esto?, me gustaría saber si debo descargar alguna pila o si existe una API que mejore esto, ya que el programa funciona bien el único inconveniente es la velocidad. |