VBA для выделения ячеек на основе текущего времени суток - PullRequest
0 голосов
/ 29 мая 2019

У меня есть ряд ячеек, повторяющих «1-я смена», «2-я смена» и «3-я смена». Верхний ряд на листе - даты в течение года. У меня уже есть код для открытия файла на определенную дату (всегда за день до текущего дня) и выделения текущего дня синим цветом. Я пытаюсь заставить текущее изменение также выделить тот же оттенок синего. Таким образом, если лист просматривался в 7 утра, то будет выделена ячейка с «1-й сменой» только под текущей датой, если при просмотре в 3 часа дня будет выделена ячейка с «2-й сменой» под текущей датой, и так далее.

Любая помощь приветствуется.

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 Ответ

1 голос
/ 29 мая 2019

Поскольку ваш VBA упоминает 1700, я буду считать, что ваши смены начинаются в 1:00, 9:00 и 17:00 соответственно.

Вы можете использовать условное форматирование со следующими формулами:

1-я смена:

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

2-я смена:

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

3-я смена:

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