Eso me resulta más entendible, no lo he probado pero a simple vista veo una sola copia de rango1 en rango2, después de corregido (totalmente) el rango1.
Pero por ejemplo:
Según mis pruebas, siendo [A500] la celda activa, el código...
. . .
For n = 65 To 90
ActiveCell.Range("A1:T17").Select
Selection.Replace What:=("!") & Chr(n), Replacement:=("!") & Chr(n) & ("$")
Selection.Copy
ActiveCell.Offset(-33, 0).Range("A1").Select
ActiveSheet.Paste
Next n
. . .
... efectúa una copia de [A500:T516] (fórmulas corregidas o no) a partir de [A467]*, en el ciclo 2º copia [A467:T483] y pega a partir de [A434],... 3º a partir de [A401],...[A368],.. ... etc. produciéndose desbordamiento del límite superior de la hoja en el ciclo 80 ("P").
► *- Segun a que rango(s) de "la otra hoja" (¿... **!**H80?) hagan referencia las fórmulas de la hoja activa, obtendremos un resultado u otro (incluso errores de referencias si desborda el límite de la otra hoja).
► EDITADO: Sí. Seleccionar mediante ActiveCell.Range("A1:T17").Select sin entender bien cómo funciona (me refiero en general), puede llevar a imprevistos importantes.