Excel:同一单元格中不同值的格式不同

Excel:同一单元格中不同值的格式不同

我在 Excel 中有以下公式:

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

此公式返回一个具有单元格大小的输出——此图中左侧的数字:
改变尺寸

我需要更改单元格中公式输出的百分比部分的格式(参见右侧的示例)。

我该怎么做?

我知道在没有公式(只有数字或文本)的情况下该如何做到这一点,我尝试对这种情况执行相同的程序,但它不起作用。

答案1

不,没有办法用公式来做到这一点,即使单元格中有公式。单元格中可以使用不同大小的字体吗?是的。可以用其他方式做到这一点吗?是的,主要涉及 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

相关内容