做一个表,经常修改,时间长了,谁还能记得修改了什么,什么时候修改的呢?如果一不小心删除了,要如何恢复数据呢?
这一切的问题,是你我这样的办公族每天都会遇到的烦恼!是时候展现真正的技术了!
以上问题,在学习完我们今天的技巧后,都不是事什么时候?改了什么?原内容是什么?修改是什么?所有记录?
▍记录内容:
1、修改时间:可以精确到秒
2、事件:新增还是修改
3、单元格:操作的单元格地址
4、原内容:新增内容,原内容为空
5、新内容:修改后的内容
▍制作教程
本案例,我们使用VBA事件来记录单元格的变化,不懂VBA也没有关系,直接套用记录!
1、右击任意工作表名称,查看代码,打开VBE
2、双击需要记录修改记录的工作表
3、复制代码,粘贴进去,点击右上角的×,关闭VBE
▍代码如下
Public oldValue As Variant Private Sub Worksheet_Change(ByVal Target As Range) Dim iRow As Integer, changeTp As String If Target.Cells.Count <> 1 Then End If Target.Column > 5 Then End '控制修改内容检查的范围这里是A-E列 newvalue = Target.Value '内容发生变化,记录 If oldValue <> newvalue Then iRow = Worksheets("修改记录").Cells(Rows.Count, 1).End(3).Row + 1 If oldValue = "" Then changeTp = "新增" Else If newvalue <> "" Then changeTp = "修改" End If End If With Worksheets("修改记录") '修改的日期时间 .Cells(iRow, 1) = "'" & Format(Now, "yyyy-mm-dd hh:mm:ss") .Cells(iRow, 2) = changeTp .Cells(iRow, 3) = Target.Address(0, 0) .Cells(iRow, 4) = oldValue .Cells(iRow, 5) = newvalue End With End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count <> 1 Then End If Target.Column > 5 Then End '控制修改内容检查的范围这里是A-E列 oldValue = Target.Value Debug.Print "原始内容:" & oldValue End Sub
还没有评论,来说两句吧...