2014-10-29 35 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

相關問題