Otra solución es tener su enrollable acceso a las hojas de cálculo otras hojas de cálculo por nombre de archivo y apoderarse de los datos en sí.
Para hacer eso, necesitará tener todas las hojas de cálculo abiertas al mismo tiempo para poder actualizar los enlaces, pero eso probablemente sea más rápido que abrir y copiar/pegar uno a la vez, incluso con una macro . Cada hoja de cálculo necesitará un nombre de archivo único.
Si los nombres de las hojas de cálculo no son conocidos hasta que los recibe, o cambian regularmente, cree una columna en su tabla acumulativa para almacenar el nombre de archivo de las hojas y luego construya la dirección que necesita utilizando la manipulación de cadenas y obtener los datos usando INDIRECT().
Ejemplo para agarrar una celda de datos de un archivo en particular:
=INDIRECT("'[C:\path\workbook.xls]MyWorksheet'!$A$2")
aclarar y repetir lo anterior para cada célula de cada hoja de cálculo que desea obtener.
Debe ser inteligente acerca de cómo hacer que la cuerda pase a INDIRECTO(). Constrúyalo como una fórmula para que pueda usar literalmente la misma fórmula para cada celda que necesite recuperar.
Ejemplo:
= INDIRECT("'[" & $A2 & "]MyWorksheet'!$" & ADDRESS(3, COL()))
La fórmula anterior se destinarán a la hoja de cálculo cuyo nombre está en $ A2 (nota la falta de $ antes "2" para que pueda pegar la misma fórmula a otras filas para otros archivos), y obtenga el valor de la celda en la hoja MyWorksheet en la fila tres y en la columna actual (por lo tanto, si esto está en B2 en su roll-up, obtiene B3 del otro archivo).
Ajuste la función DIRECCIÓN para agregar desplazamientos a la fila y columna necesarias.
La ventaja de la solución anterior es que la misma fórmula se puede copiar y pegar en las filas y columnas que necesita rellenar, y Excel ajustará los $ A2 y COL() según sea necesario. Muy mantenible
Editar una vez tuve una situación similar, y no pude cargar todas las hojas de cálculo a la vez (más de 200). Creo que terminé escribiendo el VBA por lo que hizo que no en realidad abra y lea los archivos de Excel. En cambio, hice que recorriera los nombres de los archivos, abrí una conexión ODBC a cada uno y usé ADO para leer los valores que necesitaba de un rango con nombre prescrito (que aparece como una "tabla" en ODBC; las hojas de trabajo también aparecen como "tablas"). "pero hay reglas sobre nombres permitidos). Esto fue mucho más rápido que abrir y cerrar archivos de Excel, y tenía la ventaja adicional de no bloquear Excel.
Qusetions: 1) ¿Qué tienes hasta ahora? 2) ¿cómo saber qué archivos abrir?y 3) ¿Cuál es el problema con el que te encuentras? – RBarryYoung