Eu escrevi um código rápido que deve fazer o que você quiser.
Basicamente, ele verifica se uma célula contém uma fórmula e, se o fizer, substitui todas as instâncias nas quais essa célula é referenciada com essa fórmula.
Uma vez que ele tenha passado pela planilha, se encontrar algum substituto, ele faz um loop novamente (não tendo certeza de que precisa disso, mas foi mais fácil de colocar). Eu também não tenho ideia de quão rápido isso será executado em planilhas complexas.
Note que ele trata $ A $ 1, $ A1, A $ 1 e A1 como o mesmo que não tem de determinar se deve haver algumas células congeladas na referência.
Sub replace_formulas()
Dim cell_count As Long, flag As Boolean
Do
flag = False
For Each c In ActiveSheet.UsedRange
If c.HasFormula Then
'count number of replacements
cell_count = Application.WorksheetFunction.CountIf(Cells, c.Address) + _
Application.WorksheetFunction.CountIf(Cells, Replace(c.Address, "$", "")) + _
Application.WorksheetFunction.CountIf(Cells, Replace(c.Address, "$", "", 1, 1)) + _
Application.WorksheetFunction.CountIf(Cells, "$" & Replace(c.Address, "$", ""))
'If there is at least one replacement loop through all the cells after this one
If cell_count > 0 Then flag = True
'Replace cell references with and without $ ($A$1,$A1,A$1,A1)
Cells.Replace What:=c.Address, Replacement:="c.formula", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:=Replace(c.Address, "$", ""), Replacement:=Right(c.Formula, Len(c.Formula) - 1), LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:=Replace(c.Address, "$", "", 1, 1), Replacement:=Right(c.Formula, Len(c.Formula) - 1), LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="$" & Replace(c.Address, "$", ""), Replacement:=Right(c.Formula, Len(c.Formula) - 1), LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End If
Next
Loop While flag = True
End Sub