添加缺少的日期和缺少的项目vba excel

添加缺少的日期和缺少的项目vba excel,excel,vba,Excel,Vba,我需要一些帮助来设置这个vba。 我想添加一个单元格,其中包含日期缺失和驱动程序。 比如说 10/29/2018 Name Item driver 10/30/2018 Name Item driver (add missing date here, no available , no available and driver) 11/02/2018 Name Item driver 如果缺少日期,并且驱动程序也缺少,则添加该日期 我希望这能有所帮助

我需要一些帮助来设置这个vba。 我想添加一个单元格,其中包含日期缺失和驱动程序。 比如说

10/29/2018  Name    Item    driver
10/30/2018  Name    Item    driver
(add missing date here, no available , no available and driver)
11/02/2018  Name    Item    driver
如果缺少日期,并且驱动程序也缺少,则添加该日期


我希望这能有所帮助。

下面的代码假设值从A2开始,所有相关数据都按顺序存储,如B-D列。这将插入一行并填充数据,以便每个日期都有一个条目。如果您有大量数据需要处理,可能值得添加到通常的
应用程序中。calculation=xlmanual
Application.screenUpdate=false
,以加快处理速度。完成后,请确保将它们重置回默认状态

Option Explicit
Sub datefiller()

    Dim i As Long
    Dim lastdate As Long
    Dim startDate As Long
    Dim TotalRows As Long
    i = 2

    With ThisWorkbook.Worksheets(1)

        While Not IsEmpty(.Range("A" & i).Value)
            If Not .Range("A" & i).Value = .Range("A" & i - 1).Value + 1 Then
                .Range("A" & i).EntireRow.Insert shift:=xlDown
                .Range("A" & i).Value = .Range("A" & i - 1).Value + 1
                .Range("B" & i & ":C" & i).Value = "N/A"
                .Range("D" & i).Value = "driver"
            Else
                i = i + 1
            End If
        Wend
    End With
End Sub
编辑:添加驱动程序的名称并考虑不同的分组

Option Explicit
Sub datefiller()

    Dim i As Long
    Dim lastdate As Long
    Dim startDate As Long
    Dim TotalRows As Long
    i = 3

    With ThisWorkbook.Worksheets(1)

        While Not IsEmpty(.Range("A" & i).Value)
            If (Not .Range("A" & i).Value = .Range("A" & i - 1).Value + 1) And .Range("D" & i).Value = .Range("D" & i - 1).Value Then
                .Range("A" & i).EntireRow.Insert shift:=xlDown
                .Range("A" & i).Value = .Range("A" & i - 1).Value + 1
                .Range("B" & i & ":C" & i).Value = "N/A"
                .Range("D" & i).Value = .Range("D" & i - 1).Value
            Else
                i = i + 1
            End If
        Wend
    End With
End Sub

错过的日期是什么?在2018年10月30日以下的一行中,是否应该是日期:2018-10-31?另一个选项是创建一个包含所有日期的新表(使用填充方法),然后使用vlookup填充存在的日期。是的,2018年10月31日。这是一个空行还是中间没有空格?@Brotato我中间没有空行或空格。它不起作用:(.代码没有任何作用。如果你看我发布的图片,excel表是按驱动程序和日期排序的。在两个日期之间缺少一个,将日期添加到缺少的日期中。你能删除包含这些单词的行吗(添加缺少的日期)然后让这些值彼此相邻?宏假设每行2及以上都有一个日期。它不起作用。excel工作表不断添加数字,使我的excel崩溃。是的,我这样做了。我的excel也有更多的数字。我删除它们以尝试您的代码,这时我的excel崩溃。