在我的宏中,我计算了两个日期之间的网络日,但其中还应包括公司假期。
所以对于我的代码:
With MasterWB.Worksheets("Company Holidays")
.Activate
Holidaylist = .Range("H:H").Value
End With
If (Application.WorksheetFunction.NetworkDays(date1, date2, Holidaylist) > 14) Then
'do something
End If
错误表明它无法获取worksheetfunction属性,但无法弄清原因。文档显示,在包含公司假期的给定单元格范围内,应该是可行的。
编辑
date1和date2是正常日期值,例如。 date
(今天)和2019/09/19
假期清单是我工作表中的一个范围,其中包含日期值,例如
2019/8/10
2019/8/11
2019/8/12
答案 0 :(得分:2)
我认为问题是第三个参数包含其他数据,例如(假日日期)之类的标题行。您应该在更窄的范围内给出,例如B2:B10,如果您知道假期的确切日期。
如果您不知道它是否可以更改,则可以使用.End和.Resize函数确定范围。让我们假设您在B1中有“假日日期”,第一个实际日期在B2中,而所有其他日期都在它下面的连续行中。在这种情况下,您应该使用以下方法来设置假期列表:
Holidaylist = .Range(.Range("B2"), .Range("B1").End(xlDown)).Value