You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:40:59