使用场景说明
例如:在E1单元格输入一个数据,编辑一段文本,在F1单元格中随即记录下当前时间。当E1单元格发生变化或者编辑时,F1单元格都对应进行更新时间。
- 建立EXCEL表格记录工作内容
- 记录工作内容,一天安排,在第二列中显示完成时间,用于后续的复盘
一天下来工作日报、周报可以从这个EXCEL中抽离汇总,也可以回顾自己做某项工作所花费的真实时间,当然这也可以涵盖学习、做题等多个场景。
最初这样做的目的是,可以更好的估算自己完成某项任务的预估时间,因为有时经验会出错,往往错估了时间导致自己加班(自己习惯性得把时间说短)。
具体操作
例如:要在Excel中实现让F列显示E列最后编辑的日期,可以使用VBA(Visual Basic for Applications)编程来实现这一功能。
- 打开Excel工作簿,按Alt+F11进入VBA编辑器。
- 在VBA编辑器中,找到你当前工作簿的VBA项目(通常在Project Explorer窗口中显示为VBAProject (你的工作簿名))。
- 双击你想要应用此功能的工作表名称(例如Sheet1),这将打开该工作表的代码窗口。
- 在代码窗口中,输入以下VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ChangedCell As Range
' 检查更改是否发生在E列
If Not Intersect(Target, Me.Columns("E")) Is Nothing Then
' 遍历更改的单元格(假设每次更改只影响一个单元格)
For Each ChangedCell In Target
' 在F列对应的单元格中记录最后编辑的日期和时间
Me.Cells(ChangedCell.Row, "F").Value = Now
Next ChangedCell
End If
End Sub
如下图所示
- 关闭VBA编辑器,返回到Excel工作簿。
现在,每当你在E列的某个单元格中进行编辑时,F列对应行的单元格将自动记录最后编辑的日期和时间。如果有需要可以改成A列,或者其他想要的列
用VBA的好处是F列没有公式,不用担心手误删除
F列内容也可以任意删除,只要是E列内容更新就可以F列记录时间
注意事项
这个VBA代码只在工作表的内容发生变化时触发,并且只针对E列的更改进行响应。
Now 函数返回当前的日期和时间。
如果你只想记录日期,可以使用 Date 函数;
如果你只想记录时间,可以使用 Time 函数。
但通常记录完整的日期和时间更为有用。
请确保你的Excel设置允许运行VBA宏。可以另存为EXCEL为带有宏格式
在某些情况下,出于安全考虑,Excel可能会禁用宏。你可以通过“文件”>“选项”>“信任中心”>“信任中心设置”>“宏设置”来启用宏。