Excel VBA中的时间运算
这就是我想做的,我意识到它不起作用Excel VBA中的时间运算,excel,vba,Excel,Vba,这就是我想做的,我意识到它不起作用 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 如果时间>23且时间23或时间23或小时(现在)7且小
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
如果时间>23且时间<7,则
ws.Cells(Target.Row,12).Value=3
如果时间大于7,时间小于15,则
ws.Cells(Target.Row,12).Value=1
其他的
ws.Cells(Target.Row,12).Value=2
如果结束
我想用这些东西做什么。。。如果实际时间超过晚上11点但少于上午7点。。。它在一个单元格中写入3。。。等等问题是我意识到这个合成时间>23或时间<7不起作用。。。如何将时间函数与实际小时进行比较?
谢谢 试试这个
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
如果小时(现在)>23或小时(现在)7且小时(现在)<15,则
ws.Cells(Target.Row,12).Value=1
其他的
ws.Cells(Target.Row,12).Value=2
如果结束
您需要从时间中提取小时,您可以使用DatePart
功能,例如
Dim CurrentHour
CurrentHour = DatePart("h", Time)
If CurrentHour > 23 Or CurrentHour < 7 Then
....
Dim当前小时
CurrentHour=日期部分(“h”,时间)
如果CurrentHour>23或CurrentHour<7,则
....
类似这样的东西。我使用了样本变量来代替目标,并且知道使用了哪个表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
子定时()
将ws设置为工作表
双倍时间
设置ws=图纸(1)
dbTime=时间
如果dbTime>23/24或dbTime<7/24,则
ws.Cells(1,12)。值=3
如果dbTime>=7/24,dbTime<15/24,则
ws.Cells(1,12).Value=1
其他的
ws.Cells(1,12).Value=2
如果结束
端接头
小时不能大于23且小于7…:-)@PhilPursglove没错你是我纠正了我的错误。我应该比复制粘贴更清楚,这是我一问这个问题就想到的解决办法!谢谢你还需要满足一个7小时的条件——目前这个条件是7小时,所以当它正好是7小时时,它将以第三个条件结束并投入使用2@andreiIon我建议将Time
设置为一个常量,这取决于您的代码有多长时间(尽管可能性很小)当代码执行时,动态变量将改变其值,从而导致不一致性