Perhaps try GetValue( $Field ; 1 ) this should evaluate the contents of the field as you replace.
I think you are looking for
An alternative yet overkill option is
Replace field contents wants a hardcoded field name.
You need to replace it (no pun intended) with a loop on found records in which you use Set Field By Name, which lets you specify a calc for the field name.
- use freeze window and allow user abort (off)
- you might have to use Get ( LayoutTableName ) & "::" & yourfieldnamecalculation in the Set Field By Name thingie.