2017-04-19 103 views
1

我試圖通過開始日期和結束日期來循環日期,例如它從4月3日開始到8月31日結束。4月3日之後,它將添加7天到結束的日期日期並顯示日期和月份。我試圖循環它,但它循環不休,並沒有停下來。前兩週工作但開始Do until循環,它不起作用。在此先感謝您的幫助日期的循環

x = 5 
endD = Sheet1.Range("C20").Value 
startD = Sheet1.Range("C19").Value 
mth = Month(startD) 
Name = MonthName(mth, True) 
no = Day(startD) 
Sheet1.Range("C2").Value = no 
Sheet1.Range("C1").Value = Name 
dates = DateAdd("d", 7, startD) 
Name = MonthName(Month(dates), True) 
Sheet1.Range("D2").Value = Name 
Sheet1.Range("D1").Value = Day(dates) 
W = dates 
Do Until W = endD 
m = DateAdd("d", 7, W) 
W = m 
no = 0 
Name = " " 
no = Day(m) 
Name = MonthName(Month(m), True) 
Sheet1.Cells(1, x).Value = Name 
Sheet1.Cells(2, x).Value = no 
x = x + 1 
Loop 

回答

2

Do Until W = endD

THS可能會導致無休止的循環,因爲在endD變量W可能「跳」你增加價值。

Do Until W >= endD 
+0

現在它只循環到5月8日.... –

+0

現在我們解決了無限循環問題,嘗試一些'Debug.Print endD',檢查調試器中的變量等。@RachelChia –

+0

這很奇怪,因爲它當結束日期是7月31日,但不是其他日期時可以工作 –

0
Sub test() 

Dim FirstDate As Date 
Dim LastDate As Date 
Dim NextDate As Date 

FirstDate = Range("startdate").Value 
LastDate = Range("enddate").Value 

NextDate = FirstDate 
Range("tripdays").Select 

Do Until NextDate > LastDate 

    ActiveCell.Value = NextDate 
    ActiveCell.Offset(1, 0).Select 
    NextDate = NextDate + 1 

Loop 

End Sub 

怎麼樣了這一點:通過更換呢?

+0

不這不是我想要的。我希望它每週從開始日期到結束日期循環顯示日期和月份 –