我有一个电子表格,其中每个工作表在单元格C94中都有一个值。我希望标签颜色根据此单元格中的值进行更改。然后,我希望工作表每60秒左右刷新一次,并更新工作簿中的所有选项卡颜色。
到目前为止,我已将此代码输入到每个标签中:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("$C$94").Value
Case "In Progress"
Me.Tab.ColorIndex = 43
Case "Missed Lay"
Me.Tab.ColorIndex = 3
Case "Action Required"
Me.Tab.ColorIndex = 45
Case "Complete"
Me.Tab.ColorIndex = 1
Case Else
Me.Tab.ColorIndex = xlColorIndexNone
End Select
End Sub
每当我手动更改单元格中的数据并按Enter键时,此工作和更新都会更新。如何刷新标签颜色而无需更改值并按Enter键?是否可以每隔60秒刷新一次,或者在工作簿中任何其他工作表的单元格中更改数据?对我的要求来说,这两种方法都是合适的解决方案。
答案 0 :(得分:0)
最有效的方法是让Excel更新所有工作表
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws.Tab
Select Case ws.Range("C94").Value2
Case "In Progress": .ColorIndex = 43
Case "Missed Lay": .ColorIndex = 3
Case "Action Required": .ColorIndex = 45
Case "Complete": .ColorIndex = 1
Case Else: .ColorIndex = xlColorIndexNone
End Select
End With
Next
End Sub
有很多方法可以每分钟监控变化,但会耗尽更多资源