我想根据年龄自动删除某些行

时间:2013-07-22 22:03:38

标签: excel spreadsheet

我正在创建一个电子表格,并希望在某个年龄段自动删除行。有没有办法做到这一点? 我的公司向纽约办事处提交工程请求,我创建了一个工作跟踪器来监控从提交到收到计划的时间。如果我能弄清楚如何在一段时间后使数据行丢失,我的老板会喜欢它。我已经为日计数和自动更新添加了新工作的所有公式,但我不知道如何去完成这项任务。 感谢您的任何意见!

1 个答案:

答案 0 :(得分:0)

下面的代码应该可以解决问题。在这个例子中,我从第二行开始并检查F列中的日期以查看它是否大于定义的间隔天数(此处为21),您可以根据需要更改这些变量的初始化:

Sub delete_old()

    Dim rowDate
    Dim curDate
    Dim interval
    Dim curAdd
    Dim vCell As Range

    ' set interval to an appropriate no of days
    interval = 21 ' can be more precise e.g. for 5 mins: (1 / 24) / 12
    curDate = Now()

    ' assuming we want to start from row 2 and that date is in column F
    Set vCell = Range("F2")

    ' Set Do loop to stop when an empty cell is reached.
    Do Until IsEmpty(vCell)
        curAdd = vCell.Address
        If curDate - vCell.Value >= interval Then
            vCell.EntireRow.Delete
            Set vCell = Range(curAdd)
        Else
            Set vCell = Range(curAdd).Offset(1, 0) ' next row
        End If
    Loop

    Set vCell = Nothing

End Sub

您需要在保存或打开工作簿等事件时自动调用此方法。如果您需要协助设置或上述代码的任何说明,请与我们联系。