Итак, я готовлю отчет в формате Excel и мне было интересно, могу ли я раскрасить текст в определенном столбце, в соответствии с какими значениями в нем, используя условное форматирование? Если быть точным, то будет две группы текста, и группа цветов 1 будет зеленого цвета, а другая - другого цвета.

Вот пример изображения - где я хотел бы, чтобы A, B и C встречались в ячейке, они были красного цвета, а если X, Y или Z встречались в ячейке, они окрашивались в зеленый. Это при игнорировании чисел внутри фигурных скобок и самих фигурных скобок.

Пример изображения -

Возможно ли это даже с помощью условного форматирования? Любая помощь приветствуется.

1 ответ1

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 Editor.
  3. Copy и Paste этот код как standard module .
  4. Наконец, запустить макрос.

NB

  • В коде Col=1 и For Row = 2 To 5 можно редактировать, вы можете отрегулировать положение Column & Row position соответствии с размещением данных на вашем листе.
  • Цветовые коды также доступны для редактирования.

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