Inside the Function, replace the Function name with a temporary value holding Variable. Just before the End Function, set the Function = to the Temporary variable. Break the inner loop out of this Function into it's own Private Function.

Some Code Notes:
myResult = Cells(returnAddress.Row, (returnAddress.Column) + 1).Value + " {" + Cells(returnAddress.Row, (returnAddress.Column) + 2).Value + "}"
Is the same as
myResult = returnAddress.Offset(, 1) & returnAddress.Offset(, 2) 'But, without the curly brackets


Set returnAddress = Cells.Range(myRange.Address).Find
is the same as
Set returnAddress =myRange.Find