У меня есть основная рабочая книга, в которой нужно извлечь данные из определенной подпапки с датой. Дата указывается пользователем до запуска макроса.

Основная рабочая книга действует только как уровень представления, а исходные / базовые данные в датированных подпапках имеют согласованные имена и форматы.

Предположим, что в моей основной рабочей книге «Лист1» у меня есть следующая функция в A1:

='C:\Development\GridsResults\20101115\[DATA_sheet_20101115_D.xlsx]Stresses'!$C$9

Вы заметите, что это две «датированные» части в ссылке на файл - это должно быть предоставлено пользователем. В этом случае указана дата 15-Nov-2010 Теперь, если пользователь поставит 23-Nov-2010 , ссылка выше должна быть

='C:\Development\GridsResults\20101120\[DATA_sheet_20101120_D.xlsx]Stresses'!$C$9

У меня уже есть формулы, которые создают вышеупомянутые пути к файлам, в моем Links в моей основной рабочей книге. Это динамическая часть, которая создает ссылки. Теперь на листе Links предположим, что результат моей магии находится в ячейке B3 и называется диапазоном с именем DATA т.е.

C:\Development\GridsResults\20101120\[DATA_sheet_20101120_D.xlsx]

Таким образом, теоретически, каков должен быть результат, то, что ячейка A1 на Sheet1 в моей основной рабочей книге должна использовать этот сгенерированный путь к файлу

="'" & DATA & "Stresses'!$C$9

Есть ли сочетание стандартных функций Excel, которые могут достичь этого?

3 ответа3

0

Я не верю, что это было бы возможно при использовании стандартных функций Excel. если это так, то это определенно не выглядит красиво.

Я думаю, что вам лучше всего было бы создать макрос; Конечно, метод активации будет зависеть от вас. Макрос будет выглядеть примерно так.

Dim L1 As Variant, L2 As Variant
L1 = ThisWorkbook.Names("DATA").RefersToRange
L2 = "='" & L1 & "Stresses'!R9C3"
Sheets("Sheet1").Range("A1").FormulaR1C1 = L2
0

Используйте =INDIRECT("'" & DATA & "Stresses'!$C$9") .

0

http://numbermonger.com/2012/02/11/excel-pull-function-creating-dynamic-links-to-closed-workbooks/

Ссылка выше может быть хорошим вариантом. У меня не было времени, чтобы проверить это самостоятельно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .