excel - 在缺少日期时,Excel VBA执行循环以扫描日期和填充范围

  显示原文与译文双语对照的内容
0 0

我有一个工作表有 ~20,000 行数据。 每行在列C 中都有一。 每个工作表只包含上个月的数据。 我想要发生的是,在每个日期都有一个循环,确保没有丢失日期,我需要循环插入缺失日期。 我已经在网上找到了这个,并试图将它定制到我的工作表,但无法使它工作:


 Dim i As Long: i = 1
 'Adds missing dates as new rows
 Do
 If Cells(i + 1,"C")> Cells(i,"C") + 1 Then
 Rows(i + 1).Insert xlShiftDown
 Cells(i + 1,"C") = Cells(i,"C") + 1
 End If
 i = i + 1
 Loop Until Cells(i + 1,"C") =""

我有一组不同的MACROS,将数据格式化成表,然后按事务日期对它的进行排序。 我不确定表是否创建了另一个问题,但是我看不到它是否可以工作。

任何提示都非常感激 !

时间: 原作者:

0 0

从如下所示的数据开始:

enter image description here


运行这里代码以循环遍历日期,并插入丢失的行。


Sub insertMissingDate()
 Dim wks As Worksheet
 Set wks = Worksheets("Sheet1")

 Dim lastRow As Long
 lastRow = wks.Range("C2").End(xlDown).Row

 'Work bottom up since we are inserting new rows
 For i = lastRow To 3 Step -1
 curcell = wks.Cells(i, 3).Value
 prevcell = wks.Cells(i - 1, 3).Value

 'Using a loop here allows us to bridge a gap of multiple missing dates
 Do Until curcell - 1 = prevcell Or curcell = prevcell
 'Insert new row
 wks.Rows(i).Insert xlShiftDown

 'Insert missing date into new row
 curcell = wks.Cells(i + 1, 3) - 1
 wks.Cells(i, 3).Value = curcell
 Loop
 Next i
End Sub

结果:

enter image description here

原作者:
...