VBA将特定date设置为一年中的第一周

我想把具体的date(October 06 , 2014)定为今年的第一周。 所以当我使用=weeknum() formulaR1C1它将返回星期数。

我目前正在制作每天更新的工作表,所以每周的数字只会每周更新一次。 栏(“D”)表示周数。 和列(“B”)表示date。

如果我使用=weeknum()公式返回值41,但它需要是第1周。

如何创build您的个性化function? 它只是计算插入date(myDate)和被认为是一年的第一天(first_day)的date之间有多less天,将这个数字除以7,取其整数并加起来1。它总是会给你正确的。

 Public Function special_weeknum(ByVal myDate As Date) As Integer Dim first_day As Date: first_day = #10/6/2014# Dim myWeek As Integer: myWeek = Int((myDate - first_day) / 7) + 1 special_weeknum = myWeek End Function 

请注意,这种方法将允许您也将第一天作为用户input:

 Public Function special_weeknum(ByVal myDate As Date, ByVal first_day As Date) Dim myWeek As Integer: myWeek = Int((myDate - first_day) / 7) + 1 special_weeknum = myWeek End Function 

所以你总是能够决定哪一天是你必须考虑的一年中的第一天。