Ok, dessa forma, não usa o VBA, mas é bem pior. Aparentemente o Excel tinha essas funções "Excel 4.0" que você poderia usar em nomes definidos. Eles fazem o que você quer, mas eles ainda precisam ser salvos em um arquivo .xlsm
:
Nível de hack 1
Existe uma função (?) chamada EVALUATE
(não consigo encontrar nenhuma documentação oficial sobre isso, mas esta página explica isso) que pode avaliar o texto como uma função. Mas você não pode digitá-lo diretamente em uma célula, ele precisa "executar" de um intervalo nomeado:
ClaroqueoproblemaéquesevocêtentaravaliarafórmulaA2*(1-0.04*(A3-20)/80)
vocênãoconsegueespecificarsuasprópriasentradas.
Nível2dehackers
Nasuafórmulamestra,vocêpodeespecificaruma OFFSET
, mas você precisa de uma célula de referência. Você não pode simplesmente referenciar A1
pelos mesmos motivos de antes. Você precisa de uma maneira de fazer referência a "esta" célula. Digite outro hack genial que eu encontrei aqui . Selecione a célula A1
, crie um intervalo nomeado (por exemplo, THIS_CELL
), insira a fórmula =!A1
(! Significa apenas " esta planilha ").
Agora, se você quiser se referir à célula imediatamente à direita (1 col across), use:
OFFSET(THIS_CELL,0,1)
Então, na sua página de fórmulas mestras, você coloca fórmulas na coluna A e argumentos nas colunas B, C, D, etc. E você obtém uma fórmula maciçamente feia assim:
=OFFSET(THIS_CELL,0,1)*(1-0.04*(OFFSET(THIS_CELL,0,2)-20)/80)
Combineoshacks
Agora,bastacriarumintervalonomeadoqueEVALUATE
so FORMULATEXT
da fórmula sofisticada com off-sets embutidos:
=EVALUATE(FORMULATEXT(MasterFormulaTest!$A$2))
Insiraointervalonomeadoemumacélulaepronto!
Tudo sem VBA, as mesmas desvantagens de se você estivesse usando o VBA, mas muito mais complicado do que simplesmente usar o VBA. Completamente pior.