添加缺少的日期和缺少的项目vba excel
我需要一些帮助来设置这个vba。 我想添加一个单元格,其中包含日期缺失和驱动程序。 比如说添加缺少的日期和缺少的项目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 如果缺少日期,并且驱动程序也缺少,则添加该日期 我希望这能有所帮助
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崩溃。