В настоящее время у меня есть выпадающий список для определенных ячеек, связанных со списком статусов. «Complete», который помечается как зеленый, «Pending», который помечается как оранжевый, «Outstanding», который помечается как красный. Я хочу, чтобы каждая выпадающая опция также вызывала изменение цвета ячейки. Например, если ячейка H23 установлена в раскрывающемся меню как «Завершено», я хочу, чтобы ячейка H22 автоматически изменилась на «Завершено». Однако, если ячейка H23 установлена как «Завершено» из их выпадающего меню, а ячейка «H24» установлена как ожидающая, я хочу, чтобы ячейка H23 изменила цвет и статус автоматически на оранжевый.

1 ответ1

0

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

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Dim PreviousRowStatus As Range

    ' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("H:H")

    Application.EnableEvents = False

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        ' Did a change occur to the status column (other than the column header?
        If Range(Target.Address).Column = "8" And Range(Target.Address).Row <> 1 _
        And Range(Target.Address).Row <> 2 Then ' Column H is column 8

            ' If the values are already the same, there's no need to make an update.
            If Target.Offset(-1, 0).Value <> Target.Value Then

                ' Update the value of the previous row to match newly entered row
                Target.Offset(-1, 0).Value = Target.Value

                ' Display a message when one of the designated cells has changed.
                ' MsgBox "Cell " & Target.Offset(-1, 0).Address & " has changed to " & _
                Target.Value & " to match data in subsequent row."

            End If

        End If

    End If

    Application.EnableEvents = True

End Sub

Цвета устанавливаются автоматически с использованием условного форматирования. Если вы хотите узнать больше о том, как это работает, перейдите по ссылкам ниже.

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