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

对于每个日历,01-02-03 / 1月/ 2016日的周数是第53周。

但在Excel(VBA和Sheet Formula)这是第nr周。 2016年1月

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

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

有这个问题的补丁?

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

看起来你正在使用星期编号的ISO定义。 如果是这样,那么你需要将行更改为:

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

要获得有关weeknum计算的VBA的非常好的解释,请查看http://www.cpearson.com/excel/WeekNumbers.aspx

顺便说一下,函数=WEEKNUM()WorksheetFunction.Weeknum()在Excel版本中的工作方式不同,因此您可以通过纯粹的VBA解决scheme进行更多的控制。