以前我發現由Andy Brown完成的一些VBA代碼生成一個列表並使每個日期成爲另一個用戶的第一個或第15個日期。我試圖根據需要調整此代碼,但我很掙扎。目前,代碼一旦運行,只是一遍又一遍地放入相同的日期,我必須結束Excel。生成給定開始日期和結束日期的日期列表
Sub GenerateDates()
Dim FirstDate As Date
Dim LastDate As Date
Dim NextDate As Date
FirstDate = Range("A1").Value
LastDate = Range("a2").Value
NextDate = FirstDate
Range("B1").Select
Do Until NextDate >= LastDate
ActiveCell.Value = NextDate
ActiveCell.Offset(1, 0).Select
If Day(NextDate) = 1 Then
NextDate = DateAdd("d", NextDate, 14)
Else
NextDate = DateAdd("d", NextDate, 20)
NextDate = DateSerial(Year(NextDate), Month(NextDate), 1)
End If
Loop
上的代碼,我根據我的模型在上面列出我的,最有可能的可怕的代碼,下面是:
Sub GenerateDates()
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
'selection of columns within one row
Do Until NextDate >= LastDate
ActiveCell.Value = NextDate
ActiveCell.Offset(1, 0).Select
If Day(NextDate) = 1 Then
NextDate = DateAdd("d", NextDate, 14)
End If
Loop
End Sub
我需要的反而是產生之間每日期給定開始日期和結束日期,而不僅僅是第15和第1日。這是如何完成的?
你究竟需要什麼?我們不知道你想用他的代碼做什麼。如果你主要調整它到你命名的範圍,那麼你不必從他的代碼中移除Else塊。加入並適應您的範圍。 :) – Manhattan
不是每個日期由1日和15日我所要的輸出是範圍之間的每一個日期,以便分離: 開始日期= 2014年1月1日 結束日期= 2014年1月6日 輸出= 1/1/2014 1/2/2014 1/3/2014 1/4/2014 1/5/2014 1/6/2014 .....另外,我該如何正確地做灰色像你那樣的代碼在那裏?我在一週前從字面上開始使用VBA,所以我希望能夠學習並能夠爲其他人做出貢獻。 – Chardo
現在好了。在下面修改我的答案。等一下。 – Manhattan