VBA Excel自动颜色和值更改

我正在尝试为工作build立个人pipe理电子表格。 我有一个不同优先级的任务列表。

我在这里要做的是,如果任务*优先级的数量达到某个阈值,则可用性单元格的颜色发生变化,描述单元格值发生变化,例如“繁忙”

这里是我到目前为止的代码,当我更改任务列表的值时,如何实现它以自动更改

Sub Avail_flag() TasksRange = ActiveSheet.Range("P3:P6") availcells = Range("M8,N8") busyflag = 0 medBusyFlag = 0 highBusyFlag = 0 imedBusyFlag = 0 If Range("p4") > 0 Then medBusyFlag = 1 ElseIf Range("p4") > 2 Then medBusyFlag = 2 ElseIf Range("p5") > 0 Then highBusyFlag = 1 ElseIf Range("p5") > 2 Then highBusyFlag = 2 ElseIf Range("p6") > 0 Then imedBusyFlag = 1 End If For Each sell In lRange busyflag = (medBusyFlag + (highBusyFlagI * 2) + (imedBusyFlag * 3)) If busyflag > 0 Then For Each cell In Range(availcells) cell.Color = green Next cell("N8").Value = "Occupied" ElseIf busyflag > 3 Then For Each cell In Range(availcells) cell.Color = orange Next cell("N8").Value = "Busy" ElseIf busyflag > 5 Then For Each cell In Range(availcells) cell.Color = red Next cell("N8").Value = "Unavailable" Else For Each cell In Range(availcells) cell.Color = white End If End Sub 

这里是电子表格的捕获,如果有帮助的话,突出的灰色部分就是所有魔法发生的地方

在这里输入图像描述

您可以使用表格的Change事件:

 Private Sub Worksheet_Change(ByVal Target As Range) 

我去了条件格式,这是我之前没有听说过的。 经过查阅和学习如何使用它似乎是迄今为止最好的select。 谢谢@melo的消化