Bug参数用错了一个,而且没有考虑指定天数可能是负数,Demo2来修正了:
Function FDemo(Dd As Date, Dnum As Integer) As Date
Dim i, Md As Integer
i = Int(Dnum / 5)
Md = Weekday(Dd, vbMonday)
If Md + Dnum < 5 and Md + Dnum > 0 Then
FDemo = Dd + Dnum
Else
FDemo = Dd + Dnum + i * 2
End If
End Function
===============================
需求:自定义函数(日期,天数)结果是指定日期在指定工作日天数后的工作日期。要判断周六周日,不用考虑法定节假日。
Demo1
Function FDemo(Dd As Date, Dnum As Integer) As Date
Dim i, Md As Integer
i = Int(Dnum / 5)
Md = Weekday(Dd, vbMonday)
If Md + Dnum < 5 Then
FDemo = Dd + i'此处加i是错的,应该加Dnum
Else
FDemo = Dd + Dnum + i * 2
End If
End Function
简单测试了一下,能实现预期值,大家有空帮忙测试指正。