如何创建一个需要花费数小时作为参数的函数。像这样的东西,
Function BREAK_TIME(work_time)
If 4 <= work_time < 9.5 Then
BREAK_TIME = 30
End If
If work_time >= 9.5 Then
BREAK_TIME = 60
End If
End Function
但我怎么能说这是时间?我希望它能做的是:花费数小时,例如07:40:00
,并告诉我员工有多少分钟的休息时间,这里是30分钟。
我为令人难以置信的丑陋代码道歉。第一次使用VBA并不容易工作(任何代码改进也很受欢迎:))。
答案 0 :(得分:0)
您可以使用Date对象,该对象具有存储各种时间单位的功能,或者您可以将小时数作为浮点数(在您的示例中为7.666666)或作为一组小时数传递,分钟和秒。
我修改了你的功能:
Function BREAK_TIME(work_time as Single) as Single
If work_time < 4 Then
BREAK_TIME = 0
ElseIf work_time >= 4 And work_time < 9.5 Then
BREAK_TIME = .5
ElseIf work_time >= 9.5 Then
BREAK_TIME = 1
End If
End Function
它使用浮点值表示小时数,并以小时而不是分钟为单位返回值。
答案 1 :(得分:0)
另一种可能性就是只开始和结束时间。
Function BREAK_TIME(time_to_meet, time_you_are_off)
'Difference in minutes
worked = DateDiff("n", time_to_meet, time_you_are_off)
Select Case worked
Case Is <= 240
BREAK_TIME = 0
Case Is < 570
BREAK_TIME = 30
Case Is >= 570
BREAK_TIME = 60
End Select
End Function
输入可以是:BREAK_TIME #7:40:00 AM#, #2:30:00 PM#