2015-03-31 106 views
1

我正在嘗試創建一個自動化的電子表格,它將改變每週的日期,但也要提前2周。Excel中的日期邏輯

因此,它的時間表,教師可以預訂房間。在頂部顯示他們預訂的週數,例如它會說 從2015年3月3日開始,而在其他的牀單上增加7天到前一週的時間,以便它顯示2周的高級在其他工作表

我想創建一些邏輯,以便當第一週結束時,所以id有一個日期變量,將檢查第一週是否會結束,然後將設置第3周後1至7天,但與我目前的設置,然後將推動第2周和第3週一周,我不想要

你能幫我找出需要什麼樣的邏輯才能得到這個工作?

Sub SetDate() 
Dim Week1 As Date 
Dim Week2 As Date 
Dim Week3 As Date 
Dim Week4 As Date 


Week1 = DateValue("30/3/2015") 
Week2 = DateAdd("d", 7, Week1) 
Week3 = DateAdd("d", 7, Week2) 
Week4 = DateAdd("d", 7, Week3) 

Worksheets("Week1").Range("B4").Value = Week1 
Worksheets("Week2").Range("B4").Value = Week2 
Worksheets("Week3").Range("B4").Value = Week3 

End Sub 
+0

您是否希望** Week1 **始終爲當前星期的*星期一*? – 2015-03-31 13:49:43

+0

這將是最好的方式是的,但由於有3張不同的星期,它將意味着轉移所有的細胞數據,其中不是真正可行的id,就像它在一個週期中工作,以至於當第一週它將變成7第3周後的第2周,第2周結束後將成爲第3周後的第7天,然後第1周將回到最早的一週等等 – pvtctrlalt 2015-03-31 13:57:08

+0

如果我可以上傳圖片但我沒有足夠的分數 – pvtctrlalt 2015-03-31 13:57:45

回答

1

我不確定我是否理解這個問題,但也許是這樣的?

基本上,我們使用您的原始日期設置日期,然後我們檢查是否有任何日期是在那個時間之前 - 如果是的話,我們增加它並再次檢查。那樣,如果我們需要循環幾周,它會繼續騎自行車,直到它們都是最新的?

請給它一個鏡頭,讓我知道如果這不是你所需要的,我會幫你解決它。

我通過的日期設置爲2015年3月30日,2015年4月6日進行了測試,並且2015年4月13日

Week1變爲2015年4月20日和其他人保持不變(我相信是如預期的)。如果我們推遲了兩週以至於已經過去了(不應該在實踐中發生),那麼您將會明智地獲得相同的抵消日期 - 僅僅是所有未來的抵消日期。

Sub SetDate() 
Dim Week1 As Date 
Dim Week2 As Date 
Dim Week3 As Date 
Dim Week4 As Date 

Week1 = Worksheets("Week1").Range("B4").Value 
Week2 = Worksheets("Week2").Range("B4").Value 
Week3 = Worksheets("Week3").Range("B4").Value 

Dim FoundOldDate 

Do 
FoundOldDate = False 
If Week1 - Date < 0 Then 
    Week1 = DateAdd("d", 7, Week3) 
    FoundOldDate = True 
End If 
If Week2 - Date < 0 Then 
    Week2 = DateAdd("d", 7, Week1) 
    FoundOldDate = True 
End If 
If Week3 - Date < 0 Then 
    Week3 = DateAdd("d", 7, Week2) 
    FoundOldDate = True 
End If 
Loop While FoundOldDate 

Worksheets("Week1").Range("B4").Value = Week1 
Worksheets("Week2").Range("B4").Value = Week2 
Worksheets("Week3").Range("B4").Value = Week3 

End Sub 
+1

這看起來正是我所需要的。生病需要進行測試壽。非常感謝 – pvtctrlalt 2015-04-01 08:12:14