У меня есть несколько листов Excel с датами в столбце B. Я использую следующий блок кода VBA, чтобы открыть лист с сегодняшней датой, видимой на экране.
Private Sub Worksheet_Activate()
Dim d As Date, i As Long
d = Date
ActiveWindow.ScrollRow = 1
For i = 16 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, "B").Value = d Then
Cells(i, "B").Select
Exit Sub
End If
Next
End Sub
Столбец даты не содержит даты выходных, поэтому кодирование работает только тогда, когда сегодня период с понедельника по пятницу. Если я открою лист в субботу, он откроется в верхней части листа, который может находиться в тысячах строк от сегодняшней даты, поскольку лист содержит исторические данные, датированные несколькими годами.
Как изменить кодировку так, чтобы, если сегодняшняя дата не указана в столбце B, она увеличивала сегодняшнюю дату на 2 и искала эквивалент VODAY () + 2 для VBA, чтобы открыть лист с датой понедельника, видимой, если сегодня суббота или дата вторника, если сегодня воскресенье?