做一个表,经常修改,时间长了,谁还能记得修改了什么,什么时候修改的呢?如果一不小心删除了,要如何恢复数据呢?
这一切的问题,是你我这样的办公族每天都会遇到的烦恼!是时候展现真正的技术了!
以上问题,在学习完我们今天的技巧后,都不是事什么时候?改了什么?原内容是什么?修改是什么?所有记录?
▍记录内容:
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



 
		 
		 
		 
		

还没有评论,来说两句吧...