首页 > 解决方案 > 如果日期较旧,如何制作删除行的代码

问题描述

我正在创建一个工具,该工具需要删除“E”列中日期早于 01-01-2019 的行。

Sub OlderDateDelete()

Dim i As Variant

Application.DisplayAlerts = False

For i = Sheets("Iberica Not Sent").Count To 2 Step -1
    If Sheets(i).Range("E2").Value < DateValue("01/01/2019") Then
        Sheets(i).Delete
    End If
Next i

Application.DisplayAlerts = True

End Sub

标签: excelvba

解决方案


我想出的最简单的方法是将日期“01/01/2019”放在一个单元格中,在我的示例中是“G1”

然后将每个范围转换为该单元格并删除它们:

Sub DeletePreviousYears()
Dim i As Long
Dim LastRow As Long
LastRow = Sheets("Iberica Not Sent").Range("E" & Rows.Count).End(xlUp).Row

Application.DisplayAlerts = False


For i = LastRow To 2 Step -1

   If Range("E" & i) <> "" And Range("E" & i).Value < Range("G1").Value Then
       Rows(i).Delete
   End If

Next i

Application.DisplayAlerts = True
End Sub

最好的方法也是使用函数来查找最后一行并返回您的循环。同样,使用您的第一个代码Sheets时,您循环的是工作表而不是行。


推荐阅读