在Excel中添加从昨天开始的180天,并删除其余的行

时间:2013-07-16 17:13:10

标签: excel excel-vba date vba

我有一份Excel报告,由于任何给定月份的日历天数不均匀,每天生成的日期不同,从三天到两天不等。列F中的报告如下所示。今天的日期是2013年7月17日,生成报告的过程配置为显示超过180天的任何内容,以便我们捕获正确的数据。

01/12/2014
01/15/2014
01/15/2014
01/12/2014
01/15/2014

我想删除所有不等于1/15/14的行。我不知道是否有办法只用1/15添加另一列,然后删除其余的?任何帮助或方向将不胜感激。

我们现在每天都进入文件并按日期排序然后删除。我想自动化它。

谢谢

1 个答案:

答案 0 :(得分:1)

使用循环迭代行,如果小于您的条件则删除。我引用了这个线程的行删除代码:Delete a row in Excel VBA

我假设你的日期在A栏,从第1行开始。

Private Sub Remove_Rows()

Dim CutoffDate As Date
CutoffDate = Date + 180

Dim ws As Worksheet
Set ws = ActiveSheet

Dim RowCounter As Integer
RowCounter = 1

Do While ws.Cells(RowCounter, 1) <> ""
    If ws.Cells(RowCounter, 1) < CutoffDate Then
        ws.Rows(RowCounter).Delete
    End If
    RowCounter = RowCounter + 1
Loop

End Sub