2014-02-20 110 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對於使用情況