You can't store content as 'FormattedText' to a variable. And what your code in post #1 does is store only the unformatted string.
To use the 'FormattedText' property in anything like you describe, you'd have to use something like:
Code:
RangeA.FormattedText = RangeB.FormattedText
then modify RangeB, before restoring it via code like:
Code:
RangeB.FormattedText = RangeA.FormattedText
RangeA.Text = vbNullstring