2014-02-20 111 views
2

我正在尝试为工作设置个人管理电子表格。我有一个具有不同优先级的任务列表。VBA Excel自动颜色和值更改

我想在这里做,如果*优先进入的任务数达到一定的阈值的可用性细胞的颜色变化和描述单元格的值的变化,例如,“忙”

这里是我的代码是到目前为止,我怎么实现它时,我改变了任务列表

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 

这里的值来自动改变的是电子表格的拍摄没有什么帮助,突出显示的灰色部分是所有魔术发生

enter image description here

+4

为什么不使用条件格式? – 2014-02-20 12:28:27

+0

查看Worksheet对象模块,有一些事件过程在单元格的值更改时触发。这是您要将代码复制到 – 2014-02-20 12:29:26

+0

的位置您可以使用条件格式更改单元格值吗?忙/可用/不可用更改? – tim

回答

1

可以使用Change事件板材:

Private Sub Worksheet_Change(ByVal Target As Range) 
0

我去条件格式,这是我从来没有听说过的。在查看并学习如何使用它之后,它似乎是迄今为止最好的选择。谢谢@mehow对于使用情况