Excel:VBA和公式表中的WeekNum错误

Excel: WeekNum error in VBA and Formula Sheet

对于每个日历,星期几01-02-03 / jan / 2016是第53周。

但是在excel(VBA和工作表公式)中,这是星期nr。 2016年1月1日。

1
2
 cellValue ="01/01/2016"
 res = WorksheetFunction.WeekNum(cellValue, 2)

这是严重的错误还是正确的?

是否有针对此问题的补丁?


看来您使用的是周数的ISO定义。 如果是这样,那么您需要将行更改为:

1
res = DatePart("ww", d, vbMonday, vbFirstFourDays)

有关VBA用于周数计算的一个很好的解释,请访问http://www.cpearson.com/excel/WeekNumbers.aspx。

顺便说一句,功能=WEEKNUM()WorksheetFunction.Weeknum()在Excel版本中的工作方式不同,因此,使用纯VBA解决方案可能具有更多控制权。


您应该使用21而不是2作为第二个参数。