Как прокомментировали другие, невозможно манипулировать Characters
результатом формулы - по крайней мере, насколько я знаю.
Самая очевидная альтернатива - записать значение и процент в две соседние ячейки, а затем используйте условное форматирование для последней.
Однако, если вы застряли в имеющемся формате, вам придется обойти проблему формулы. Расчет формулы в основном запускается при изменении любого указанного значения диапазона. Вы можете захватить это событие самостоятельно, скажем, в обработчике Worksheet_Change
и записать результат вашего алгоритма в Sheet2. Это позволит вам раскрасить символы результата.
Скелетный код будет выглядеть так (в вашем объекте Sheet1):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim result As Variant
Dim pt As Long
For Each cell In Target.Cells
'Test for a change in the desired range.
If Not Intersect(cell, Me.Range("A:A")) Is Nothing Then
'Check that your cell value matches the conditions you want, eg
If IsNumeric(cell.Value) Then
'Calculate the result - as per your cell formula.
result = cell.Value * 2 & " (" & cell.Value * 2 / 100 & "%)"
'Write and colour the result.
pt = InStr(result, "(")
With Sheet2.Cells(cell.Row, "L")
.Value = result
.Characters(pt, Len(result)).Font.Color = RGB(255, 0, 0)
End With
End If
End If
Next
End Sub