VBA根据一天中的当前时间突出显示单元格

时间:2019-05-29 18:57:15

标签: excel vba gantt-chart

我有一排重复“第一班”,“第二班”和“第三班”的单元格。表格的第一行是全年的日期。我已经有代码将文件打开到特定日期(总是在当前日期的前一天)并以蓝色突出显示当前日期。我正在尝试使当前的班次也突出显示相同的蓝色阴影。因此,如果在上午7点查看工作表,则仅在当前日期下具有“第一个班次”的单元格将突出显示,如果在下午3点查看,则在当前日期下具有“第二个班次”的单元格将突出显示,依此类推。

感谢您的帮助。

Private Sub Workbook_Open()
    For I = 1 To 1700
        If Cells(1, I).Value = Date - 1 Then
            ActiveWindow.ScrollColumn = I
        End If
    Next
    For I = 1 To 1700
        If Cells(1, I).Value = Date Then
            Cells(1, I).Interior.ColorIndex = 28
            Cells(2, I).Interior.ColorIndex = 28
        End If
    Next
End Sub

1 个答案:

答案 0 :(得分:1)

由于您的VBA提到了1700,所以我假设您的轮班分别从1:00、9:00和17:00开始。

您可以通过以下公式使用条件格式:

第一班:

=AND(NOW()-TODAY()>1/24,NOW()-TODAY()<9/24)

第二班:

=AND(NOW()-TODAY()>9/24,NOW()-TODAY()<17/24)

三班制

=OR(NOW()-TODAY()>17/24,NOW()-TODAY()<1/24)