2014-10-29 113 views
0

我想将特定日期(October 06 , 2014)设置为一年中的第一周。因此,当我使用=weeknum()formulaR1C1时,它将返回周数。VBA将特定日期设置为年度第一周

我目前正在研究每天更新的工作表,因此每周的数字只会每周更新一次。列(“D”)表示周数。和列(“B”)表示日期。

如果我使用=weeknum()公式就可以返回41的值,但它需要一周数字1

+2

任何原因,你不能总是做“= weeknum() - 40”。 – 2014-10-29 04:10:34

+1

以下是列出如何在VBA中执行此操作的文章:http://www.cpearson.com/excel/WeekNumbers.aspx。 – BobbitWormJoe 2014-10-29 04:19:46

+0

嗨安德鲁L,我不能使用它,因为它会影响其他日期,可以说我使用它在2014年10月12日,它会返回为第2周,但实际上只有6天过去了,它被视为周数2.它仍然只在第一周 – Jarlee 2014-10-29 06:19:25

回答

1

如何创建自己的个性化功能? 它只包括计算插入日期(myDate)和被认为是一年中第一天(first_day)的日期之间有多少天,将该数字除以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 

请注意,这种方法将让你也来的第一天通过为用户输入:

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 

,这样你就总是能够决定哪些是您必须考虑的一天一年中的第一天。

+0

谢谢马泰奥NNZ它的工作现在 – Jarlee 2014-10-30 00:42:02

相关问题