Al obtener valores de un rango en Excel, es mucho más eficiente obtener los valores en "bulk" (como una matriz 2D) que recorrer cada fila y columna. Por ejemplo:VSTO: obtener propiedades de celda de Excel en "bulk"
Dim range = Globals.Table.Range("A1:E5")
Dim values(,) As Object = range.Value
Con 25 células que no hace mucha diferencia, pero con 10.000 filas por 20 columnas ciertamente lo es. Hasta aquí todo bien.
Mi pregunta es: ¿alguien ha encontrado una forma de hacer el mismo tipo de búsqueda "a granel" para otras propiedades? Por ejemplo, quiero encontrar qué celdas están coloreadas de cierta manera. Me encantaría hacer algo como "range.Interior.Color", pero eso devuelve solo un valor de, no una matriz de valores. Y así termino bucleando, que es probablemente 100 o incluso 1000 veces más lento. Para mesas grandes, esto es realmente un asesino.
PD: Parece que .Fórmula se comporta igual que .Valor: puedo buscar varias a la vez. Pero todavía tengo que engatusar a los colores para que se jueguen bien.
¡Agradezco su ayuda!
+1 buen puesto Rachel. – brettdj
¿Sabe por casualidad si hay alguna forma de acceder a la referencia de estilo de la celda ('StyleID') que puedo ver en el archivo XML de VBA/VSTO? En este caso, se pueden leer todos los datos de estilo de Excel y luego asignar cada celda a su estilo con solo una llamada de interoperabilidad por celda. –