当我们在Excel中输入或更新数据时,有时需要自动添加一个时间戳,表示当前数据的最新更新时间。如下图所示,当在C列更新数据时,在D列自动加入更新时的时间。
???
??? 可以用VBA代码来实现,实现步骤如下:
??? 按Alt+F11,打开VBA编辑器。在“工程”窗口中双击“ThisWorkBook”,在右侧的代码窗口中粘贴下列代码:
??? Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
????? If ActiveSheet.Name <> "Sheet1" Then Exit Sub
????? If Target.Column = 3 Then Target.Offset(0, 1) = Now
??? End Sub
??? 这样,当“Sheet1”表C列单元格中的内容发生改变时,Excel会自动在D列同一行中的单元格中添加时间。
??? 如果要将目标区域指定为C2:C20,可以用下面的代码:
??? Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
????? If ActiveSheet.Name <> "Sheet1" Then Exit Sub
????? With Target
?????? ?If .Column = 3 And .Row > 1 And .Row < 21="" then="" .offset(0,="" 1)="">
????? End With
??? End Sub
??? 需要注意的是,当目标区域中的任意单元格内容发生改变,包括删除或更新数据时,都将触发Worksheet.SelectionChange 事件。
……