尝试创build一个循环来find缺失的date

我有一些代码可以在我的开始(J2)和结束date(K2)之间创build缺less的date。 我有一个约6000人的开始和结束date列表,并希望重复每行的代码。

有谁知道我怎么可以循环这个?

Sub FindMissingDates() Dim FirstDate As Date Dim LastDate As Date Dim NextDate As Date Dim DateOffset As Range Dim DateIter As Date FirstDate = Range("J2").Value LastDate = Range("K2").Value Set DateOffset = Range("M2") For DateIter = FirstDate To LastDate DateOffset.Value = DateIter Set DateOffset = DateOffset.Offset(0, 1) Next DateIter End Sub 

假设你的名字列表中有JK列的开始和结束date,那么就像下面的那样快速改变你的代码,应该做的

 Sub FindMissingDates() Dim r As Long Dim FirstDate As Date Dim LastDate As Date Dim NextDate As Date Dim DateOffset As Range Dim DateIter As Date For r = 2 To ActiveSheet.Cells(Rows.Count, "J").End(xlUp).Row '<~~ Loop each row FirstDate = ActiveSheet.Cells(r, "J").Value LastDate = ActiveSheet.Cells(r, "K").Value Set DateOffset = ActiveSheet.Cells(r, "M") For DateIter = FirstDate To LastDate DateOffset.Value = DateIter Set DateOffset = DateOffset.Offset(0, 1) Next DateIter Next r End Sub 

你可以添加另一个For循环。

 Dim sht As Wokrsheet Dim LastRow As Integer Dim FirstDate As Date Dim LastDate As Date Dim NextDate As Date Dim DateOffset As Range Dim DateIter As Date Dim i As Integer Set sht = ThisWorkbook.Worksheets("Name of your sheet") LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row FirstDate = Range("J2").Value LastDate = Range("K2").Value Set DateOffset = Range("M2") For i = First row of data To LastRow - 1 For DateIter = FirstDate To LastDate DateOffset.Value = DateIter Set DateOffset = DateOffset.Offset(i, 1) Next DateIter Next i 

看看这是否适合你?