我有一段如下所示的代码。我正在尝试计算 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
只需将范围添加到位。
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月4日
3月5日
3月6日
3月7日
3月8日
在我列表中的所有假期(随机天数)中,只有 1 个位于第 1 天和第 8 天之间,
3/4/2013
. 因此,它会将结果更改为 3 月 11 日。从您的评论中,您似乎在说您的结果是:3 月 22 日,5 个工作日加 10 个假期,这是正确的吗?如您所见,我没有收到该结果。那么,也许更多细节会有所帮助?或者对于另一个问题可能更好。