Você pode usar Replace (na faixa de opções Início, escolha Localizar e selecionar / substituir).
Para o seu exemplo, eu configuraria a janela Substituir como:
Descubra o que: A4
Substitua por: (A1 + A2)
No Excel, eu tenho uma célula contendo uma fórmula referenciando outras células, que fazem referência a outras células e assim por diante ... formando uma grande árvore de referências. Eu gostaria de substituir recursivamente todas as ocorrências de todas as referências, para que a fórmula contenha apenas constantes e nenhuma referência a outras células.
Por exemplo Supondo que eu tenha essas células:
A1=3
A2=4
A3=5
A4=A1+A2
A5=A4/A3+1
Existe uma maneira de expandir a fórmula de A5 em algo como "(3 + 4) / 5 + 1"?
Eu encontrei a propriedade Precedentes no VBA que retorna a lista de precedentes (as células referenciadas na fórmula nos vários níveis da árvore inteira de dependências). A solução seria encontrar sua ocorrência na fórmula e substituí-los recursivamente pela fórmula das células correspondentes. No entanto, fazer isso sintaticamente é difícil (por exemplo, pensar em substituir a ocorrência de "A1" na fórmula "= A10 + A11").
Já me perguntaram por que eu preciso disso, então aqui está o meu problema: Minha planilha tem muitos cálculos financeiros que não entendo, com resultados parciais espalhados por várias células. Estou interessado apenas no resultado final, que está em apenas uma célula e depende de um número de variáveis iniciais. Se eu tivesse que rastrear todas as dependências, seria um trabalho longo. Eu preciso trabalhar com diferentes cenários com diferentes valores iniciais e, claro, o resultado final. Esses cenários serão definidos automaticamente pelo solucionador (por isso, preciso tê-los todos na mesma planilha) para otimizar uma função.
Você pode usar Replace (na faixa de opções Início, escolha Localizar e selecionar / substituir).
Para o seu exemplo, eu configuraria a janela Substituir como:
Descubra o que: A4
Substitua por: (A1 + A2)
Tags microsoft-excel vba