
标签:VBA
使用VBA可以为我们的工作簿添加很多额外的功能,让我们更好地了解工作簿所呈现的信息。下面是一个例子。
工作簿中的工作表记录了每个项目的信息,在每个工作表的单元格A1中是该工作表记录的项目的进度情况,包括三种情况:进度正常、进度稍滞后、进度严重滞后。每次都要打开相应的工作表才能查看项目的进度情况,然而,如果能够通过工作表标签颜色来区分项目进度情况,那么一眼就能一目了然。这里,当项目进度正常时,工作表标签显示绿色;当项目进度稍有滞后时,工作表标签显示黄色;当项目进度严重滞后时,工作表标签显示红色。如下图1所示。

图1
实现上述效果的代码如下:
Sub SetupSheetTabsColorByConditional()
    Dim wks As Worksheet
    Dim strProjectStatus As String
    '遍历工作簿中的工作表
    For Each wks In ThisWorkbook.Worksheets
        '获取工作表单元格A1中的内容
        strProjectStatus = wks.Cells(1, 1).Value
        '比较并设置工作表标签颜色
        Select Case strProjectStatus
        Case "进度正常"
            wks.Tab.Color = 5287936
        Case "进度稍滞后"
            wks.Tab.Color = 65535
        Case "进度严重滞后"
            wks.Tab.Color = 192
        End Select
    Next wks
End Sub你可以将该代码放置到工作簿事件中,实现单元格A1中的内容变化时工作表标签颜色自动变化。