在Excel VBA中查找季度的周数

我需要一个VBA函数,它将返回给定date四分之一的星期数。

例如,1/1/2016的input将返回1,2016年1月4日将返回2,10/1/1将返回1,10/7/2016将返回2,11/11/2016将返回7

我有一个在Excel中的function,这样做:

=IF(O48="","",WEEKNUM(O48)-WEEKNUM(LOOKUP(O48,DATE(YEAR(O48),{1,4,7,10},1)))+1) 

但我正努力将其移植到VBA。 帮帮我? 谢谢!

您可以使用DatePart获取一年中的星期数,然后每个季度减去13周(也可以使用DatePart函数):

 Public Function WeekOfQuarter(inValue As Date) WeekOfQuarter = DatePart("ww", inValue) - ((DatePart("q", inValue) - 1) * 13) End Function