1
場景:我有一個包含諸如「過期任務」之類的貼圖的儀表板。我有一個叫tileOverdueTasks
的形狀。最重要的是我有一個價值爲=Z11
的藝術家。單元Z11基於分開的表(Sheet5 (Tasks)
)中的值計算。如果Tasks.Z11 = 0
我想tileOverdueTasks
爲綠色。如果是別的,我希望它是紅色的。基於帶計算值的單元更新形狀的顏色
我發現下面的代碼,但它似乎沒有觸發,我假設由於單元格Z11沒有被手動更改,因此也不是ActiveWorkbook
。那麼,如何根據上述情況對此進行修改?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Z11")) Is Nothing Then
If IsNumeric(Target.Value) Then
If Target.Value > 0 Then
ActiveSheet.Shapes("tileOverdueTasks").Fill.BackColor.RGB = vbRed
Else
ActiveSheet.Shapes("tileOverdueTasks").Fill.BackColor.RGB = vbGreen
End If
End If
End If
End Sub
更新:我已經改變了事件Worksheet.calculate
由@Scott克拉納的建議。現在事件發生,甚至進入適當的狀態,但是顏色沒有變化。
查找到Worksheet_calculate事件。 –
這有幫助,但請看我的編輯。我把一些MsgBox的,所以我知道它正在進入適當的條件,但形狀顏色不會改變。 –
想通了,它需要'Fill.ForeColor'。請發表一個答案,我會aCcept。 –