1

我正在创建一个电子表格,并希望在某个年龄自动删除行。有没有办法做到这一点?我的公司向我们的纽约办公室提交工程申请,我创建了一个工作跟踪器来监控从提交到收到计划的时间。如果我能弄清楚如何让数据行在一段时间后下降,我的老板会很高兴。我已经获得了计算天数和自动更新添加新工作的所有公式,但我不知道如何完成这项任务。感谢您的任何意见!

4

1 回答 1

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

您需要在保存或打开工作簿等事件时自动调用它。如果您需要帮助设置此设置或对上述代码进行任何说明,请告诉我。

于 2013-07-23T00:41:04.193 回答