是否有方法在Microsoft中复制/创建VBA中的日历(或从MPP日历中读取),然后使用该日历计算两个日期之间的工作日差异(持续时间)?
发布于 2017-12-21 22:20:28
Microsoft有一个函数DateDifference,它包含三个参数:开始日期、完成日期和日历。您需要传递它calendar对象,而不是日历的字符串名称。返回值是工作分钟数,因此除以适当的数量获得小时数,通常为480小时(8小时* 60分钟)。
例如,根据项目日历,这将给出12月份的工作日数。
Application.DateDifference("12/1/17","12/31/17", ActiveProject.Calendar) / 480这是相关的MSDN文章。
发布于 2017-12-21 21:38:53
如果你的日历是标准的(从周一到周五每周工作5天),你可以创建你自己的功能,比如:
Function Workdays(Start_Date As Date, End_Date As Date) AS Integer
Dim Temp_Delta As Integer, X As Integer, Y As Integer
Temp_Delta = End_Date - Start_Date
Temp_Delta = 5 * (Temp_Delta \ 7)
X = Weekday(End_Date, vbMonday)
Y = Weekday(Start_Date, vbMonday)
If X > 5 Then X = 5
If Y > 5 Then Y = 5
Temp_Delta = Temp_Delta + X - Y
Workdays = Temp_Delta
End Functionhttps://stackoverflow.com/questions/47932944
复制相似问题