Excel实时监控表格变化,Excel查看历史修改记录

做一个表,经常修改,时间长了,谁还能记得修改了什么,什么时候修改的呢?如果一不小心删除了,要如何恢复数据呢?
这一切的问题,是你我这样的办公族每天都会遇到的烦恼!是时候展现真正的技术了!

以上问题,在学习完我们今天的技巧后,都不是事什么时候?改了什么?原内容是什么?修改是什么?所有记录?

Excel实时监控表格变化,Excel查看历史修改记录

▍记录内容:

1、修改时间:可以精确到秒

2、事件:新增还是修改

3、单元格:操作的单元格地址

4、原内容:新增内容,原内容为空

5、新内容:修改后的内容

▍制作教程

本案例,我们使用事件来记录单元格的变化,不懂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

温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
Excel/VBA

Excel下拉菜单内容怎么随数据源自动扩展?

2025-3-10 16:51:13

Excel/VBA

Excel数据提取公式大全,Excel数据提取函数

2025-3-10 16:51:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索