【发布时间】:2021-07-07 02:36:35
【问题描述】:
我有一个指定的范围:12:00pm 到 12:30pm
如果这些时间在指定范围内,我想在现有分配的时间上增加半小时。
例如,如果任务是从上午 10:00 到下午 1:00 执行的,我想在任务结束时添加 30 分钟,这样任务的结束时间就是下午 1:30
关于如何解决这个问题的任何建议?
编辑 1:
我已经摆弄了几个代码,这是我到目前为止想出的:
Public Function GetAdjEndTime(StartDateTime As Date, EndDateTime As Date) As Date
Dim StartDate As Date, EndDate As Date, StartTime As Date, EndTime As Date
StartDate = Application.WorksheetFunction.RoundDown(StartDateTime, 0)
StartTime = StartDateTime - StartDate
EndDate = Application.WorksheetFunction.RoundDown(EndDateTime, 0)
EndTime = EndDateTime - EndDate
If StartTime <= #12:00:00 PM# And EndTime >= #12:30:00 PM# Then
GetAdjEndTime = EndDate + EndTime + (1 / 48)
Else
GetAdjEndTime = EndDate + EndTime
End If
End Function
您如何考虑边缘情况,例如开始/结束日期不同时会发生什么,确切地从 12:00 开始的任务会发生什么,当工作在 12:15 完成时会发生什么等?
【问题讨论】:
-
因此无需查看任何示例代码,我们可以猜测这可能会有所帮助:docs.microsoft.com/en-us/office/vba/language/reference/…
-
@braX 我刚刚用一些更相关的代码更新了帖子,也许你可以帮助我。
标签: excel vba for-loop if-statement conditional-statements