
Existe algum método ou macro que alguém conheça que possa transformar uma fórmula em indireta?
Por exemplo, todas as fórmulas da minha planilha atualmente são escritas como:
=SUM(Sheet2!A1:A10),
existe uma maneira de mudar isso rapidamente para uma INDIRECT
função como:
=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)
Não é difícil alterá-lo para uma fórmula, mas para centenas de fórmulas, cada uma contendo de 3 a 4 referências a outras planilhas, levaria muito tempo para corrigir isso.
O problema decorre do fato de estar somando um intervalo, porém cada vez que insiro uma nova linha no topo, a fórmula não se refere às células corretas. Tentando descobrir uma maneira de escrever uma fórmula melhor, para não precisar alterar manualmente o número da linha todas as vezes.
Responder1
Esta macro irá ajudá-lo a localizar e substituir fórmulas na planilha.
Sub FindReplaceFormula()
Cells.Replace What:="=SUM(Sheet2!A1:A10)", Replacement:= _
"=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Você pode ajustar as referências de células na Fórmula conforme necessário.