更改选项卡颜色并定期刷新

时间:2015-09-05 12:57:53

标签: excel vba excel-vba

我有一个电子表格,其中每个工作表在单元格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秒刷新一次,或者在工作簿中任何其他工作表的单元格中更改数据?对我的要求来说,这两种方法都是合适的解决方案。

1 个答案:

答案 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

有很多方法可以每分钟监控变化,但会耗尽更多资源