Use input as basis of what date to display

2020-05-05 17:45发布

I need a way to use the input on a userform to determine the date that will be displayed on the output. Here's my code:

If StatusBox.Value <= "23:59" And ShiftCode.Value = "AP" Then
    Cells(emptyRow, 8).Value = ((Date - 1) + " " + StatusBox.Value + " " + "CEST")
Else
    Cells(emptyRow, 8).Value = (Date + " " + StatusBox.Value + " " + "CEST")
End If

Basically I need the date to be displayed as Date - 1 when the input from StatusBox.Value is less than or equal to 11:59 PM or 23:59 the inputs on the StatusBox field will always be in the 12-Hour format.

1条回答
Anthone
2楼-- · 2020-05-05 18:29

This solution assumes the following:

  • StatusBox.Value is an Excel serial number formatted with a time format (no Date included) , as such StatusBox.Value is a decimal number with a value ranging from 0 (zero) to 0.99988426, representing the times from 0:00:00 (12:00:00 AM) to 23:59:59 (11:59:59 P.M.). Therefore when this serial number reaches the 24 hours becomes 1 (one).

Based on the above replace this:

If StatusBox.Value <= "23:59" ...

with this

If StatusBox.Value <= 1 ...

However if StatusBox.Value includes an [expected Date value] then use this as replacement line:

If StatusBox.Value <= [expected Date value] ...

enter image description here

查看更多
登录 后发表回答