我想知道日期/时间的“时间”部分是否在午夜到早上6点之间。
If Range("J" & RowCount) > #12:00:01 AM# And Range("J" & RowCount) < #6:00:00 AM# Then
我做错了什么?范围(“J”和RowCount)格式为“常规”,如下所示:
1/27/2015 2:00:00.000000 AM
答案 0 :(得分:0)
我在单元格A1中添加了日期/时间并使用了以下代码。
Sub test()
If Hour(Range("A1")) >= 0 And Hour(Range("A1")) < 6 Then
Debug.Print "yeah"
Else
Debug.Print "nope"
End If
End Sub
不是检查整个日期/时间(在Excel中等于42,031.08333),而是使用内置的HOUR
函数来查看小时。
适应您的代码行:
If Hour(Range("J" & RowCount)) >= 0 And Hour(Range("J" & RowCount)) < 6 Then
答案 1 :(得分:0)
如果您想查看时间是否在午夜和上午6:00之间,您只需使用以下代码
If Hour(Range("A1")) < 6 Then
MsgBox "Time is between midnight and 6:00AM"
End If
您不必检查它是否在午夜之后,因为小时数记录为1-24。如果要检查整列,也可以将此公式直接放入Excel工作表中。
如果你想比较两个特定时间,包括彼此,这将有所帮助。 (请注意,您可以在Excel中执行此操作,而无需使用VBA进行一些更改)
Dim min As Date, max As Date, test As Date
min = TimeValue("12:00:01 AM")
max = TimeValue("6:00:02 AM")
test = TimeValue("1/27/2015 2:00:00 AM") 'replace with your range
test = test - Fix(test) 'this will remove the date portion of the time
If test >= min And test <= max Then
MsgBox test & " is between(inclusive) " & min & " and " & max
Else
MsgBox test & " is NOT between(inclusive) " & min & " and " & max
End If