1

У меня есть следующая формула в Excel:

=TEXTO(D39;"#.##0")&" "&"("&TEXTO(D40;"0%")&")"

Эта формула возвращает результат с размером в ячейке - число слева на этом рисунке:
изменить размер

Мне нужно изменить форматирование процентной части вывода формулы в ячейке (см. Пример справа).

Как мне это сделать?

Я знаю, как это сделать, когда у меня нет формул (только цифры или текст), я пытался выполнить ту же процедуру в этом случае, но она не работает.

1 ответ1

0

Нет, это невозможно сделать с помощью формулы и если в ячейке есть формулы. У вас могут быть шрифты разных размеров в ячейке? Да. Можно ли это сделать другим способом? Да, в основном это касается VBA, но это выходит за рамки этого вопроса.

Дело в том, что формулы Excel возвращают значение, которое всегда является природным, а не форматирующим. Форматирование применяется к данным в ячейке, поэтому оно подходит для представления, которое вы хотите, например, для форматирования даты. Даты хранятся в формате сериализации в Excel и обычно они представлены в формате даты локали.

Для подхода VBA вы должны будете проанализировать данные ячейки, используя функцию, подобную InSTR() чтобы отделить числовое значение от значения в процентах. Затем вы примените формат, который хотите, к любой части и вернете его в ячейку.

Приветствия.

РЕДАКТИРОВАТЬ:

Как вы можете видеть здесь, есть еще один способ, который включает подсчет символов и применение желаемого формата. Я записал небольшой макрос для использования в качестве шаблона.

Sub Macro1()
'
' Macro1 Macro
'

'
Range("H13").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Dude(11,3%)"
Range("H13").Select
ActiveCell.FormulaR1C1 = "Dude(11,3%)"

With ActiveCell.Characters(Start:=1, Length:=13).Font
    .Name = "Tahoma"
    .FontStyle = "Normal"
    .Size = 8
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .ThemeFont = xlThemeFontNone
End With

With ActiveCell.Characters(Start:=14, Length:=7).Font
    .Name = "Tahoma"
    .FontStyle = "Normal"
    .Size = 20
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .ThemeFont = xlThemeFontNone
End With
Range("I13").Select
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .