从vba的国际网络日减去2天

时间:2017-07-13 16:57:05

标签: vba excel-vba excel

我试图在星期六,星期日和节假日的当前日期后2天或不包括在内。

我的假期存储的表 - [DateTable [Holidays]]

我知道它需要使用Application.NetworkDays_Intl,但我无法得到逻辑。

是否有人知道实现此目的的简便方法>

1 个答案:

答案 0 :(得分:1)

NetworkDays_Intl函数获取开始日期和结束日期,并计算范围内的工作日数。这迫使一种稍微麻烦的方法:

Dim StartDate As Date
Dim EndDate As Date

Dim Duration As Integer

Duration = 2
EndDate = CDate("2017-07-08")

' Pick theoretically latest start date
StartDate = DateAdd("d", -Duration + 1, EndDate)

' Step one day back until we get it right
Do While Application.NetworkDays_Intl(StartDate, EndDate) <> Duration
    StartDate = DateAdd("d", -1, StartDate)
Loop
Debug.Print StartDate