Другим решением является вашим рулонным доступом таблицы других таблиц по имени файла и захватить сами данные.
Для этого вам нужно будет открыть все электронные таблицы одновременно, чтобы обновлять ссылки, но это, вероятно, быстрее, чем открытие и копирование/вставка по одному, даже с помощью макроса , Каждая таблица должна иметь уникальное имя файла.
Если имена электронных таблиц неизвестны до тех пор, пока вы их не получите или не измените их регулярно, создайте столбец в сводной таблице для хранения имени файла листов, а затем создайте адрес, который вам нужен, используя строковые манипуляции и получить данные с помощью INDIRECT().
Пример, чтобы захватить одну ячейку данных из одного конкретного файла:
=INDIRECT("'[C:\path\workbook.xls]MyWorksheet'!$A$2")
полощите и повторите вышеуказанные действия для каждой ячейки каждой таблицы, которую хотите получить.
Вы должны быть умны о том, как передать строку в INDIRECT(). Постройте его как формулу, чтобы вы могли использовать буквально формулу для каждой ячейки, которую нужно восстановить.
Пример:
= INDIRECT("'[" & $A2 & "]MyWorksheet'!$" & ADDRESS(3, COL()))
Формула выше будет идти в таблицу, имя которой находится в $ A2 (обратите внимание на отсутствие $ до «2», так что вы можете вставить ту же формулу для других строк для других файлов) и получить значение ячейки на листе MyWorksheet в третьей строке и столбец (так что, если это бит B2 в вашем свертке, он получает B3 из другого файла).
Отрегулируйте функцию ADDRESS, чтобы добавить смещения в нужную строку и столбец.
Преимущество вышеприведенного решения состоит в том, что одна и та же формула может быть скопирована и вставлена через строки и столбцы, которые необходимо заполнить, и Excel будет корректировать $ A2 и COL() по мере необходимости. Очень удобно.
Редактировать как только у меня возникла аналогичная ситуация, и я не смог загрузить все электронные таблицы сразу (более 200). Я думаю, что в итоге я написал VBA, так что не действительно открыл и прочитал файлы Excel. Вместо этого я пропустил его по именам файлов, открыл для них ODBC-соединение и использовал ADO для чтения значений, которые мне нужны, из заданного именованного диапазона (который отображается как «таблица» в ODBC - рабочие листы также отображаются как «таблицы» «но есть правила о разрешенных именах»). Это было намного быстрее, чем открытие и закрытие файлов Excel, а также дополнительное преимущество не сбой Excel.
Qusetions: 1) Что у вас есть до сих пор? 2) как узнать, какие файлы открыть?и 3) В чем проблема, с которой вы сталкиваетесь? – RBarryYoung