Converter uma Seqüência de caracteres de Texto que une Duas Folhas de trabalho em uma fórmula
-
21-12-2019 - |
Pergunta
Eu estou tentando converter uma seqüência de caracteres de texto em uma fórmula, mas a minha seqüência de caracteres de texto é um pouco incomum, pois descreve um link entre duas folhas de cálculo.Aqui é o início fórmula:
+TEXT("+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\["&TRIM(LEFT(SUBSTITUTE($B9," ",REPT(" ",30)),64))&" vM.xlsx]Metrics'!$D$8",1)
Eu criei esta fórmula para evitar ter de ligar manualmente um grande número de folhas de cálculo.Ele captura as duas primeiras palavras de uma célula, e a coloca em uma seqüência de texto que permita estabelecer um link, se fosse uma fórmula.Desta forma, eu posso simplesmente introduza um nome de empresa na célula B9, e essa fórmula irá produzir uma seqüência de caracteres de texto que descreve o link que eu quero.Aqui está a fórmula de saída:
+'X:\Deals\ONE-PAGERS\_One-pagers (vM)\[xxx vM.xlsx]Metrics'!$D$8
Como você pode ver, se isso fosse uma fórmula, seria gerar um link, ele deve retornar o valor em Cell D8
do xxx
folha de cálculo.Eu tentei a avaliar solução (visto a seguir), bem como a função indireto e nem parece estar funcionando.Deixe-me saber se isso não faz sentido e muito obrigado antecipadamente por sua ajuda!
Function EvalCell(RefCell As String)
Application.Volatile
EvalCell = Evaluate(RefCell)
End Function
Solução
Avaliar e INDIRETOS seriam ambos exigem a pasta de trabalho de origem, para ser aberto, mas você pode usar ExecuteExcel4Macro:
Function EvalCell(RefCell As String)
Application.Volatile True
application.ExecuteExcel4Macro(application.convertformula(mid$(RefCell, 2), xlA1, xlr1c1))
End Function
Eu gostaria de evitar o uso de muitos desses funções embora!