修改Excel宏:点击重置按钮自动删除往期日期数据
修改后的Excel重置宏(自动删除往期日期条目)
以下是调整后的宏代码,移除了原有的用户ID验证步骤,改为自动识别并删除往期日期对应的条目(默认日期列是A列,若实际日期列不同,可自行修改代码中的列标识):
Sub FlushData() Dim ws As Worksheet Dim lastRow As Long Dim dateCol As Range ' 关闭屏幕刷新,提升执行效率 Application.ScreenUpdating = False ' 指定目标工作表 Set ws = ThisWorkbook.Sheets("Booked") ' 确定日期列范围(假设日期在A列,从A2开始到最后一行) lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Set dateCol = ws.Range("A2:A" & lastRow) ' 筛选并删除日期小于今天的行 With ws .AutoFilterMode = False ' 清除现有筛选 .Range("A1:K" & lastRow).AutoFilter Field:=1, Criteria1:="<" & Date ' 排除表头,删除筛选出的行 If .Range("A2:A" & lastRow).SpecialCells(xlCellTypeVisible).Count > 0 Then .Range("A2:K" & lastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete MsgBox "往期日期条目已删除。" Else MsgBox "没有找到往期日期条目。" End If .AutoFilterMode = False ' 关闭筛选 End With ' 恢复屏幕刷新 Application.ScreenUpdating = True End Sub
关键说明
- 代码默认日期存储在A列,如果你的日期列是其他列(比如B列),只需把代码中
Field:=1改成对应列的序号(B列就是2,以此类推)。 - 筛选逻辑是删除小于当前系统日期的条目,若需要调整日期判断规则(比如删除昨天及之前的),可修改
Criteria1:="<" & Date为Criteria1:="<=" & Date - 1。 - 保留了屏幕刷新关闭/恢复的逻辑,避免执行过程中表格闪烁,提升体验。
内容的提问来源于stack exchange,提问作者tep gozos
相关产品推荐
相关产品推荐

