这就是我想做的事情,我意识到它无法正常工作。
If Time > 23 And Time < 7 Then
ws.Cells(Target.Row, 12).Value = 3
ElseIf Time > 7 And Time < 15 Then
ws.Cells(Target.Row, 12).Value = 1
Else
ws.Cells(Target.Row, 12).Value = 2
End If
我想用这些东西做什么...如果实际时间超过晚上11点但不到早上7点......它在一个单元格中写入3 ...等等......问题在于我意识到这个比较时间&gt; 23或时间&lt; 7不起作用...如何比较时间功能与实际小时数? 谢谢!
答案 0 :(得分:3)
试一试
If Hour(now) > 23 or Hour(now) <= 7 Then
ws.Cells(Target.Row, 12).Value = 3
ElseIf Hour(now) > 7 And Hour(now) < 15 Then
ws.Cells(Target.Row, 12).Value = 1
Else
ws.Cells(Target.Row, 12).Value = 2
End If
答案 1 :(得分:3)
像这样的东西。我使用了样本变量来代替Target并知道哪个表ws
是
Sub Timing()
Dim ws As Worksheet
Dim dbTime As Double
Set ws = Sheets(1)
dbTime = Time
If dbTime > 23 / 24 Or dbTime < 7 / 24 Then
ws.Cells(1, 12).Value = 3
ElseIf dbTime >= 7 / 24 And dbTime < 15 / 24 Then
ws.Cells(1, 12).Value = 1
Else
ws.Cells(1, 12).Value = 2
End If
End Sub
答案 2 :(得分:1)
您需要从时间中提取小时数,您可以使用DatePart
函数进行提取,例如
Dim CurrentHour
CurrentHour = DatePart("h", Time)
If CurrentHour > 23 Or CurrentHour < 7 Then
....