在excel VBA中引用for循环内的一系列单元格

时间:2013-10-17 14:34:07

标签: excel-vba vba excel

我有一段代码如下所示。我正在尝试计算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

1 个答案:

答案 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

更新: 这是我根据你的评论做的测试,你能解释一下是什么问题吗?

enter image description here

2013年3月1日起的5个工作日将是2013年3月8日:

  1. 3月4日
  2. 3月5日
  3. 3月6日
  4. 3月7日
  5. 3月8日

    和我列表中的所有假期(随机日)在1日和8日之间仅有1个, 3/4/2013。因此,它将结果更改为3月11日。从你的评论中听起来你说你的结果将是:3月22日,5个商务日加上10个假期,这是正确的吗?如你所见,我没有收到这个结果。那么,也许更多细节可能有所帮助?或者更好的另一个问题。