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

Excel中如何实现其他单元格填数据时插入固定当日日期不更新

解决Excel自动填充固定当日日期的问题

因为TODAY()是易失性函数,每次打开文件或触发计算都会自动更新,要实现「填入数据时自动填充当日日期且日期固定不变」,可以用以下两种方法:

方法一:VBA事件宏(推荐,稳定性更高)

这种方法会在你往A列指定区域填入数据时,自动给对应C列写入静态日期:

  1. 打开目标Excel文件,按Alt+F11打开VBA编辑器
  2. 在左侧工程面板找到你的目标工作表(比如Sheet1),双击进入代码编辑界面
  3. 粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 仅监控A2到A50区域的单元格变化
    If Not Intersect(Target, Me.Range("A2:A50")) Is Nothing Then
        Dim cell As Range
        For Each cell In Intersect(Target, Me.Range("A2:A50"))
            ' 仅当A列单元格非空、且对应C列单元格为空时,写入当日日期
            If cell.Value <> "" And Me.Cells(cell.Row, "C").Value = "" Then
                Me.Cells(cell.Row, "C").Value = Date
                ' 可选:设置日期显示格式,比如yyyy-mm-dd
                Me.Cells(cell.Row, "C").NumberFormat = "yyyy-mm-dd"
            End If
        Next cell
    End If
End Sub
  1. 关闭VBA编辑器,将文件保存为启用宏的工作簿(.xlsm格式)

之后只要往A2-A50区域填入内容,对应C列就会自动写入当天的静态日期,不会随时间推移更新。

方法二:迭代计算+辅助列(无需宏)

如果不想使用宏,可以通过迭代计算实现静态日期记录:

  1. 开启迭代计算:点击「文件」→「选项」→「公式」,勾选「启用迭代计算」,将迭代次数设为1
  2. 插入一个辅助列(比如D列,后续可隐藏),在D2单元格输入公式:
    =IF(A2<>"",IF(D2="",TODAY(),D2),"")
  3. 在C2单元格输入公式:=D2
  4. 将D2和C2的公式下拉填充至D50和C50

原理是迭代计算让D列公式仅在A列第一次填入内容时记录TODAY()的值,之后D列会保留该值不再更新,C列直接引用D列的静态日期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:14:57