Excel – 根据单元格值删除当前行和行

每个星期我都会收到一个电子表格,最多可以包含4000行。 如果任何date在列C中,我需要删除该行和上面的行。 有人可以帮助我一些VBA代码,我可以运行每个新的文件,我得到每周。 每周手工通过4000多行数据是很痛苦的。

在屏幕截图中,我将删除行157,158,159和160。
显示要删除的行的屏幕截图

非常感谢帮助。

给这个简短的macros试一试:

Sub dural() Dim N As Long, i As Long, v As Variant N = Cells(Rows.Count, "C").End(xlUp).Row For i = N To 2 Step -1 v = Cells(i, "C").Value If v <> "" Then If IsDate(v) Then Range(Cells(i, "C"), Cells(i - 1, "C")).EntireRow.Delete End If End If Next i End Sub 

编辑#1:

如果您有两个或更多个连续单元格,其date如下所示:

在这里输入图像描述

那么应该使用这个代码:

 Sub dural() Dim N As Long, i As Long, v As Variant Dim rKill As Range N = Cells(Rows.Count, "C").End(xlUp).Row Set rKill = Nothing For i = N To 2 Step -1 v = Cells(i, "C").Value If v <> "" Then If IsDate(v) Then If rKill Is Nothing Then Set rKill = Cells(i, "C") Set rKill = Union(rKill, Cells(i - 1, "C")) Else Set rKill = Union(rKill, Cells(i, "C")) Set rKill = Union(rKill, Cells(i - 1, "C")) End If End If End If Next i If rKill Is Nothing Then Exit Sub rKill.EntireRow.Delete End Sub 

(这将确保所有的“x”行也被删除。)