2013-02-22 2 views
0

Мне нужно создать ячейку, как и я ищу способ сделать это с помощью формул excel или кода VBA.Как создать ячейку с различными форматами

enter image description here

С двумя Дифференц formts красный в зеленый или просто черный, но не во всех случае зависит If.

Например:

Случай 1: Если в ячейке F1 и G1 имеет значения формат красного до зеленого

Случай 2: Если в ячейке F1 имеет значение, но G пуст конечный формат изображения в 1 должны быть просто черный

enter image description here

+0

Вы можете добавить условное форматирование по следующим правилам: 'AND (F1 <> "", G1 <> "") формат' с красным, 'AND (F1 <> "", G1 = "") 'format with black –

+0

Но как заковать красный и зеленый в той же ячейке. –

+0

Что вы имеете в виду от красного до зеленого? Градиент цвета? –

ответ

1

Этот код VBA должен работать. Он переходит в событие вашего листа.

Я просто установил его для столбца I, чтобы изменить цвета, но вы можете расширить его до J и K, если вам нужно.

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 

With Application 
    .EnableEvents = False 
    .ScreenUpdating = False 
End With 

If Target.Column = 6 Or Target.Column = 7 Then 

    Select Case Target.Column 

     Case Is = 6 

      If Target <> vbNullString And Target.Offset(, 1) <> vbNullString Then 

       With Target.Offset(, 2) 
        .Characters(Start:=1, Length:=5).Font.ColorIndex = 3 
        .Characters(Start:=6, Length:=3).Font.ColorIndex = 4 
       End With 

      Else: Target.Offset(, 2).Font.ColorIndex = 0 

      End If 

     Case Is = 7 

      If Target <> vbNullString And Target.Offset(, -1) <> vbNullString Then 

       With Target.Offset(, 1) 
        .Characters(Start:=1, Length:=5).Font.ColorIndex = 3 
        .Characters(Start:=6, Length:=3).Font.ColorIndex = 4 
       End With 

      Else: Target.Offset(, 1).Font.ColorIndex = 0 

      End If 

    End Select 

End If 

With Application 
    .EnableEvents = True 
    .ScreenUpdating = True 
End With 

End Sub