La macro anterior no te sirve solo te pone un $ y tu quieres dos, este es el resultado de esta otra macro como sigo adivinando cual es la estructura de tus datos no se como vaya a funcionar, como puedes ver ya la macro tiene dos $ en la fórmula, en 1030 filas por 7 columnas tarda casi un minuto en cambiar todas las fórmulas.
Sub cambia()
inicio = Time
Set datos = Range("e13").CurrentRegion
With datos
.CurrentRegion.Replace What:="!", Replacement:="!$"
For i = 1 To .Cells.Count
separa = Split(.Cells(i).Formula, "!")
caracter = Left(separa(1), 2) & "$"
largo = Len(separa(1))
numeros = Right(separa(1), largo - 2)
separa(1) = caracter & numeros
xformula = separa(0) & "!" & separa(1)
.Cells(i) = xformula
Next i
fin = Time
tiempo = fin - inicio
MsgBox (.Cells.Count & " celdas cambiadas en " & Minute(tiempo) & " minutos y " _
& Second(tiempo) & " segundos"), vbInformation, "Aviso"
End With