Use =INDIRECT("'" & DATA & "Stresses'!$C$9")
.
Eu tenho uma pasta de trabalho mestre que precisa extrair dados de uma subpasta específica datada. A data é especificada pelo usuário antes das macros serem executadas.
A pasta de trabalho principal atua apenas como uma camada de apresentação e os dados de origem / subjacentes nas subpastas datadas têm nomes e formatos consistentes.
Suponha que na minha pasta de trabalho mestre em 'Folha1' eu tenha a seguinte função em A1
:
='C:\Development\GridsResults101115\[DATA_sheet_20101115_D.xlsx]Stresses'!$C$9
Você notará que há duas partes "datadas" no link do arquivo - isso precisa ser fornecido pelo usuário. Nesse caso, a data fornecida é 15-Nov-2010
. Agora, se o usuário fornecer 23-Nov-2010
, o link acima deve ser
='C:\Development\GridsResults101120\[DATA_sheet_20101120_D.xlsx]Stresses'!$C$9
Já tenho fórmulas que criam os caminhos de arquivos acima, dentro da minha Links
planilha na pasta de trabalho principal. Esta é a parte dinâmica que cria os links. Agora na folha Links
, assuma que o resultado da minha mágica reside na célula B3
e é um intervalo nomeado chamado DATA
, ou seja,
C:\Development\GridsResults101120\[DATA_sheet_20101120_D.xlsx]
Portanto, em teoria, qual deveria ser o resultado, é que a célula A1
on Sheet1
na minha pasta de trabalho mestre deve usar esse caminho de arquivo gerado
="'" & DATA & "Stresses'!$C$9
Existe uma combinação de funções padrão do Excel que podem alcançar isso?
Eu não acredito que isso seja possível usando as funções padrão do Excel. se for, definitivamente não pareceria bonito.
Acho que sua melhor aposta seria criar uma macro; o método de ativação dependeria de você, é claro. A macro seria algo como isto.
Dim L1 As Variant, L2 As Variant
L1 = ThisWorkbook.Names("DATA").RefersToRange
L2 = "='" & L1 & "Stresses'!R9C3"
Sheets("Sheet1").Range("A1").FormulaR1C1 = L2
O link acima pode ser uma boa opção. Não tive tempo para testá-lo sozinho.