添加缺少的日期和缺少的项目VBA Excel

时间:2018-10-29 16:55:01

标签: 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

如果缺少日期,并且驱动程序也缺少添加日期。

Please see pic

我希望这会有所帮助。

1 个答案:

答案 0 :(得分:1)

下面的代码假定值以A2开头,并且所有相关数据都按顺序存储,例如B-D列。这将插入一行并填写数据,以便每个日期都有一个条目。如果您要处理大量数据,则可能需要添加通常的Application.calculation=xlmanualapplication.screenupdating = 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