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

Excel中指定单元格非空白修改时更新最后修改日期的公式优化

优化Excel时间更新逻辑:B列修改时自动更新D列时间

现有公式=IF(B3<>"",IF(D3<>"",D3,NOW()),"")仅能在B列单元格从空白变为非空白时,触发对应D列单元格用NOW()更新时间。要实现B列已填充单元格被修改时也自动更新D列当前时间,Excel公式无法直接完成,需借助VBA宏实现:

操作步骤

  1. 打开目标Excel文件,按下Alt + F11打开VBA编辑器
  2. 在左侧工程面板中找到目标工作表(如Sheet1),双击打开其代码窗口
  3. 粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
        Dim cell As Range
        For Each cell In Intersect(Target, Me.Columns("B"))
            If cell.Value <> "" Then
                Me.Cells(cell.Row, "D").Value = Now()
            Else
                Me.Cells(cell.Row, "D").Value = ""
            End If
        Next cell
    End If
End Sub

代码说明

  • 监控B列所有单元格的修改事件,只要B列单元格内容发生变化就触发逻辑
  • 若修改后B列单元格非空,对应行的D列单元格自动写入当前时间
  • 若B列单元格被清空,对应行的D列单元格也同步清空

注意事项

  • 保存文件时需选择.xlsm(启用宏的工作簿)格式,否则宏无法生效
  • 如需限定监控B列的特定行范围,可将Me.Columns("B")修改为Me.Range("B2:B100")(示例范围,按需调整)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:37:22