我正在创建一个电子表格,并希望在某个年龄段自动删除行。有没有办法做到这一点? 我的公司向纽约办事处提交工程请求,我创建了一个工作跟踪器来监控从提交到收到计划的时间。如果我能弄清楚如何在一段时间后使数据行丢失,我的老板会喜欢它。我已经为日计数和自动更新添加了新工作的所有公式,但我不知道如何去完成这项任务。 感谢您的任何意见!
答案 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
您需要在保存或打开工作簿等事件时自动调用此方法。如果您需要协助设置或上述代码的任何说明,请与我们联系。