преобразовать дату в конец дня, Excel VBA - PullRequest
0 голосов
/ 02 июня 2018

код ниже добавляет 23: 59HRS к дате, и мне нужно запускать код 4 - 5 раз в день, и он будет добавляться, пока он не изменит начальную дату.я просто хочу сделать это до конца дня на эту дату, не добавляя его.

Dim x As Integer
Dim test1 As Date
Dim schdWS, compWS As Worksheet
Const H23M59 As Double = 1 - 60 / 86400

Set schdWS = Sheet1
Set compWS = Sheet11

     lastrow = schdWS.Cells(Rows.Count, 8).End(xlUp).Row

        For x = 20 To lastrow

                If IsDate(schdWS.Cells(x, 3).Value) Then
                       Cells(x, 3).Value = CDate(Int(Cells(x, 3).Value + H23M59))
                End If
Next x

End sub

1 Ответ

0 голосов
/ 02 июня 2018

Замените ваш If внутри цикла следующим

If IsDate(schdWS.Cells(x, 3).Value) Then
    'Get rid of hours, min and secs
    TheDay = Int(schdWS.Cells(x, 3).Value)
    TheEndOfDay = TheDay + H23M59
    'I write the result in col4 for clarity. Replace according to your needs.
    schdWS.Cells(x, 4).Value = Format(TheEndOfDay, "YYYY/MM/DD HH:MM:SS")
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...