Доброго здравия форумчане! Скажите, возможно ли в екселе закрасить текст в ячейке разным цветом? Файл примера прилагается (офис 10). В файле-примере в столбце А1:А5 в каждой ячейке содержиться текст для которого выполнено условное форматирование. В (выигрыш) - закрашивается зеленым цветом, Н (ничья) - закрашивается желтым цветом, П (проигрыш) - закрашивается красным цветом. В ячейке С3 с помощью формулы СЦЕПИТЬ, связана вся серия Выигрышей, Проигрышей и Ничьих из А1:А5. Вот в этой ячейке С3 и хотелось бы закрасить каждый исход в свой цвет. Вручную в ячейке В6 у меня получилось сделать как я хотел. Может формула есть какая по данной задаче? Заранее благодарю!
Доброго здравия форумчане! Скажите, возможно ли в екселе закрасить текст в ячейке разным цветом? Файл примера прилагается (офис 10). В файле-примере в столбце А1:А5 в каждой ячейке содержиться текст для которого выполнено условное форматирование. В (выигрыш) - закрашивается зеленым цветом, Н (ничья) - закрашивается желтым цветом, П (проигрыш) - закрашивается красным цветом. В ячейке С3 с помощью формулы СЦЕПИТЬ, связана вся серия Выигрышей, Проигрышей и Ничьих из А1:А5. Вот в этой ячейке С3 и хотелось бы закрасить каждый исход в свой цвет. Вручную в ячейке В6 у меня получилось сделать как я хотел. Может формула есть какая по данной задаче? Заранее благодарю!Кузьмич
В принципе, текст в ячейке можно раскрасить так[vba]
Код
Sub tt() Dim S As String Dim i As Long With Range("C3") For i = 1 To Len(.Value) S = Mid(.Value, i, 1) Select Case S Case "В": .Characters(i, 1).Font.Color = vbGreen Case "П": .Characters(i, 1).Font.Color = vbRed Case "Н": .Characters(i, 1).Font.Color = vbYellow End Select Next End With End Sub
[/vba] Но почему-то этот способ не работает с текстом полученным в результате сцепления. Так и не смог выяснить - почему? Возможно, кто-то знает ответ. UPD Как обходной варинат [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("A1:A5")) Is Nothing Then Exit Sub [C3] = [A1] & [A2] & [A3] & [A4] & [A5] With Range("C3") For i = 1 To Len(.Value) S = Mid(.Value, i, 1) Select Case S Case "В": .Characters(i, 1).Font.Color = vbGreen Case "П": .Characters(i, 1).Font.Color = vbRed Case "Н": .Characters(i, 1).Font.Color = vbYellow Case Else: .Characters(i, 1).Font.Color = vbBlack End Select Next End With End Sub
[/vba]
В принципе, текст в ячейке можно раскрасить так[vba]
Код
Sub tt() Dim S As String Dim i As Long With Range("C3") For i = 1 To Len(.Value) S = Mid(.Value, i, 1) Select Case S Case "В": .Characters(i, 1).Font.Color = vbGreen Case "П": .Characters(i, 1).Font.Color = vbRed Case "Н": .Characters(i, 1).Font.Color = vbYellow End Select Next End With End Sub
[/vba] Но почему-то этот способ не работает с текстом полученным в результате сцепления. Так и не смог выяснить - почему? Возможно, кто-то знает ответ. UPD Как обходной варинат [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("A1:A5")) Is Nothing Then Exit Sub [C3] = [A1] & [A2] & [A3] & [A4] & [A5] With Range("C3") For i = 1 To Len(.Value) S = Mid(.Value, i, 1) Select Case S Case "В": .Characters(i, 1).Font.Color = vbGreen Case "П": .Characters(i, 1).Font.Color = vbRed Case "Н": .Characters(i, 1).Font.Color = vbYellow Case Else: .Characters(i, 1).Font.Color = vbBlack End Select Next End With End Sub