Вы не можете сделать математику таким образом в Найти / Заменить. В любом случае вам не нужно:
Sub DoReplace()
Application.ScreenUpdating = False
With ActiveDocument.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Format = False
.Wrap = wdFindContinue
.MatchWildcards = True
.Text = "0.([0-9]{2})([0-9][0-9])@^13"
.Replacement.Text = "\1.\2%^p"
.Execute Replace:=wdReplaceAll
.Text = "0.([0-9]{2})([0-9])^13"
.Replacement.Text = "\1.\20%^p"
.Execute Replace:=wdReplaceAll
.Text = "0([0-9].[0-9]@%)"
.Replacement.Text = "\1"
.Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub
Вышеописанный процесс усекает вывод в 2 знака после десятичной точки. Для округления вывода требуется нечто более сложное:
Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "0.[0-9]@^13"
.Replacement.Text = ""
.Forward = True
.Format = False
.Wrap = wdFindStop
.MatchWildcards = True
.Execute
End With
Do While .Find.Found
.End = .End - 1
.Text = Format(.Text, "0.00%")
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
Application.ScreenUpdating = True
End Sub