1

Мой шаблон включает три ячейки, но только одна ячейка нуждается в помощи (третья).

Первая ячейка будет равна либо $ 0, либо чему-то большему. Вторая ячейка будет больше $ 0 или будет пустой. Третья ячейка должна равняться значению во второй ячейке, только если первая ячейка не равна $ 0. Если значение первой ячейки равно $ 0, то третья ячейка должна равняться $ 0.

Первая ячейка - это простая формула, основанная на других несвязанных входных данных от пользователя. Шрифт всегда красный.

Вторая ячейка - это простой пользовательский ввод. Здесь шрифт всегда синий, но пользователь может вручную заполнить ячейку желтым цветом (в зависимости от того, является ли значение действительным или оценочным).

Третья ячейка должна быть выделена жирным зеленым шрифтом, если ее значение больше $ 0, и красным шрифтом (не полужирным), если ее значение равно $ 0. Кроме того, эта ячейка должна быть заполнена желтым цветом, только если вторая ячейка заполнена желтым И, если значение первой ячейки больше, чем $ 0.

Я думаю, что решение включает в себя комбинацию этих функций; что выше моего уровня навыков EXCEL. 1) формула IF/THEN 2) условное форматирование 3) код VBA

Что я должен сделать с третьей ячейкой, чтобы автоматически получить все, что я хочу (без необходимости касаться третьей ячейки)?

Заранее спасибо!

1 ответ1

0

Вот что я придумал. Не уверен, насколько вы знакомы с VBA, но если вы хотите, я могу объяснить этот код и как вы будете реализовывать его более подробно.

Я добавил две кнопки на лист, одну, которая форматирует цвет / шрифт ячейки, и другую, которая очищает цвет / шрифт.

Sub FormatColor3()

Set myWS = ThisWorkbook.Sheets("MySheet")
Set cell3 = myWS.Range("C2")

' Determining what color font is needed

If cell3.Value > 0 Then

    cell3.Font.Color = vbGreen
    cell3.Font.Bold = True

ElseIf cell3.Value = 0 Then

    cell3.Font.Color = vbRed

End If

' Determining what color cell is needed (6 refers to the yellow cell color)

If (myWS.Range("B2").Interior.ColorIndex = 6 And myWS.Range("A2").Value > 0) Then

    cell3.Interior.ColorIndex = 6

End If

End Sub

~

Sub Clear()

Set myWS = ThisWorkbook.Sheets("MySheet")

With myWS.Range("C2")
    .Font.Color = 0
    .Font.Bold = False
    .Interior.ColorIndex = 0
End With

End Sub

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