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

如何修改VBA代码以删除当前年份以外的记录?

仅保留当前年度数据的VBA修改方案

需求说明

原代码用于删除12个月以前的历史数据,现需调整为仅保留当前日历年度的记录,无需手动修改年份参数,自动适配当前系统年份。目标日期格式示例:13/09/2024 4:35:16 pm

修改后的VBA代码

Sub Delete_Rows() 'DELETE RECORDS NOT IN CURRENT YEAR
    With Sheets("HistoricalData")
        lr = .Cells(Rows.Count, "C").End(xlUp).Row
        '从最后一行往上遍历,避免删除行后索引错位
        For i = lr To 2 Step -1
            '判断单元格日期的年份是否不等于当前系统年份
            If Year(CDate(.Cells(i, "C").Value)) <> Year(Date) Then
                .Rows(i).EntireRow.Delete '删除非当前年的记录
            End If
        Next i
    End With
End Sub

关键修改点

  • 替换判断逻辑:把原代码中基于12个月滚动范围的判断,改为直接对比日期的年份
  • 自动获取当前年份:使用Year(Date)函数自动读取系统当前年份,无需手动修改代码中的年份数值(比如不用写死2025)
  • 保留反向遍历逻辑:从最后一行往第一行遍历,避免删除行后后续行号偏移导致漏删或误删问题

内容的提问来源于stack exchange,提问作者Galactus_Confused

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:41:05