【发布时间】:2018-01-29 12:25:55
【问题描述】:
我必须找出两个日期之间的工作日天数,这应该不包括周末和国定假日。 我在 vba 中使用函数 NETWORKDAYS,这不包括周末,但我也想排除一些国定假日。 如何在国定假日使用此函数 NETWORKDAYS(startDate, endDate, [holidays])。它说它接受 [holidays] 作为列表。我把所有的国定假日排成一列。如何通过 VBA 将其与此功能一起使用? 请找到代码sn-p。
Public Function dataFromInputSheetHolidayDates() As Variant
Dim holidayDates As Integer
Dim holidaydatesArray(20) As Variant
holidayDates = Sheets("InputSheet").Cells(Rows.Count, "D").End(xlUp).Row
For countDate = 0 To holidayDates - 1
holidaydatesArray(countDate) = Format(Sheets("InputSheet").Cells(countDate + 2, "D").Value, "DD-MMM-YY")
Next countDate
dataFromInputSheetHolidayDates = holidaydatesArray
End Function
holidayList = dataFromInputSheetHolidayDates()
Sheets("Estimation").Range("Z" & taskcounter).Formula = "=NETWORKDAYS(X" &
taskcounter & ",Y" & taskcounter &","& holidayList & ")"
Sheets("Estimation").Range("AB" & taskcounter).Formula = "=NETWORKDAYS(X" &
taskcounter & ",AA" & taskcounter &"," & holidayList & ")"
【问题讨论】: