条件格式 - 根据同一单元格中的不同值设置多色文本

条件格式 - 根据同一单元格中的不同值设置多色文本

因此,我正在 Excel 中准备一份报告,想知道是否可以使用条件格式根据某一列中的值对文本进行着色?准确地说,将有两组文本,颜色组 1 为绿色,另一组为其他颜色。

这是一个示例图像 - 如果单元格中出现 A、B 和 C,则将其显示为红色,如果单元格中出现 X、Y 或 Z,则将其显示为绿色。这是在忽略括号内的数字和括号本身的情况下进行的。

示例图片 -

在此处输入图片描述

使用条件格式是否可行?如能提供任何帮助,我们将不胜感激。

答案1

由于 VBA 代码适合该任务,因此我建议使用 MACRO 来解决这个问题。

在此处输入图片描述

Sub ColourPartiaText()

Dim Row As Integer, Col As Integer
Dim CurrentCellText As String
Col = 1


For Row = 2 To 5


    CurrentCellText = ActiveSheet.Cells(Row, Col).Value


    HotStartPosition = InStr(1, CurrentCellText, "A")
    CoolStartPosition = InStr(1, CurrentCellText, "B")
    CoolStartPosition1 = InStr(1, CurrentCellText, "C")
    CoolStartPosition2 = InStr(1, CurrentCellText, "X")
    CoolStartPosition3 = InStr(1, CurrentCellText, "Y")
    CoolStartPosition4 = InStr(1, CurrentCellText, "Z")


    If HotStartPosition > 0 Then
        ActiveSheet.Cells(Row, Col).Characters(HotStartPosition, 1).Font.Color = RGB(255, 0, 0)
    End If


    If CoolStartPosition > 0 Then
        ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition, 1).Font.Color = RGB(255, 0, 0)
    End If

If CoolStartPosition1 > 0 Then
        ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition1, 1).Font.Color = RGB(255, 0, 0)
    End If

    If CoolStartPosition2 > 0 Then
        ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition2, 1).Font.Color = RGB(51, 153, 51)
    End If

    If CoolStartPosition3 > 0 Then
       ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition3, 1).Font.Color = RGB(51, 153, 51)
    End If

    If CoolStartPosition4 > 0 Then
       ActiveSheet.Cells(Row, Col).Characters(CoolStartPosition4, 1).Font.Color = RGB(51, 153, 51)
    End If

Next Row
End Sub

怎么运行的:

  1. Column A从写入数据Row 2 to 5
  2. 按下Alt+F11打开 VB 编辑器窗口。
  3. Copy&Paste此代码为standard module
  4. 最后运行宏。

注意:

  • 在代码中Col=1并且For Row = 2 To 5可以编辑,您可以Column & Row position根据工作表中的数据位置进行调整。
  • 颜色代码也是可编辑的。

相关内容