2017-07-03 31 views
0

任何人都可以在这里帮我。如果时间在12:00 am到04:00 AM之间,我试图将日期打印为-1天。如果从04:00到11:59:59 PM应该显示当前日期。在excel vba中添加-1天

我很努力了很多,但没有期望的结果。

If cTime < "04:00:00 AM" Or cTime >= "12:00:00 AM" Then  
    Workbooks("Check").Sheets(1).Cells(lastrow + 1, 1).Value = DateAdd("d", -1, Date)  
Else  
    Workbooks("Check").Sheets(1).Cells(lastrow + 1, 1).Value = Date 
End If 
+1

日期文字应该使用'#'而不是'''例如'#04:00:00 AM#' –

+0

@AlexK。您应该发布为答案,以便将来的用户能够轻松找到解决方案 –

+0

我试过了在此之前和现在一样好,但它仍然显示为02 - 07月17 – user3032425

回答

1

我不知道的CTIME是什么,但在过去,当我有这样随着时间的运营工作[因为它们是简单的时间],为什么不尝试小时功能?

If Hour(Now) >= 0 And Hour(Now) <= 4 Then 
    Workbooks("Check").Sheets(1).Cells(lastrow + 1, 1).Value = DateAdd("d", -1, Date) 
Else  
    Workbooks("Check").Sheets(1).Cells(lastrow + 1, 1).Value = Date 
End If 

对于您的原始代码,您还应该确保您使用的是AND,而不是OR。如果当前时间是上午11点(这大致适用于我),那么符合标准Hour(Now) > 0 (12AM)。但它不符合标准Hour(Now) < 4 (4AM)。由于它是一个OR,它只需要满足A而不是A and B