我有一段代码如下所示。我正在尝试计算ColA中提到的指定日期后的第n个工作日。我在ColB中有假期列表(B1:B20)。我陷入了如何推荐这些假期在FOR循环中代替XXX。
For i=1 to m
cells(i,"c").Value=workday(cells(i,"A").Value,n,XXX)
next i
答案 0 :(得分:1)
只需添加范围。
For i=1 to m
cells(i,"c").Value = WorksheetFunction.WorkDay(cells(i,"A").Value,n,[B1:B20])
next i
或者如果你要做很多循环可能对填充数组中的日期很有用
Dim Holidays As Variant
Holidays = [B1:B10]
For i=1 to m
cells(i,"c").Value = WorksheetFunction.WorkDay(cells(i,"A").Value,n,Holidays)
next i
更新: 这是我根据你的评论做的测试,你能解释一下是什么问题吗?
2013年3月1日起的5个工作日将是2013年3月8日:
3月8日
和我列表中的所有假期(随机日)在1日和8日之间仅有1个,
3/4/2013
。因此,它将结果更改为3月11日。从你的评论中听起来你说你的结果将是:3月22日,5个商务日加上10个假期,这是正确的吗?如你所见,我没有收到这个结果。那么,也许更多细节可能有所帮助?或者更好的另一个问题。