EXCEL增加审计功能,记录每个单元格的修改日志(支持记录多个单元格同时修改时记录审计信息)

为确保重要Excel数据的审计跟踪,本文介绍了一种方法来记录每个单元格的修改日志,包括在一次操作中修改多个单元格的情况。通过使用全局变量数组保存更改前的值,并详细记录日志,确保所有变动都被完整记录。
摘要由CSDN通过智能技术生成

由于EXCEL中数据比较重要,所以每一次改变都需要记录下来,网上找的只是支持单个单元格改变的日志,如果要同时记录多个单元格的改变,会报错。所以将单元格改变前的值保存在集合中,这样就记录了所有单元格的值,步骤如下:

1、声明全局变量数组,用于保存改变前的值

Dim arr As New Collection


2、记录日志信息到“日志”sheet页

Private Sub Worksheet_Change(ByVal Target As Range)
    With Sheets("日志")
        On Error GoTo err
         Dim i As Integer
         ROW1 = Sheets("日志").[A65536].End(xlUp).Row + 1
         i = 0
         For Each ce In Target
          i = i + 1
          If arr(i) <> ce.Value Then
            .Cells(ROW1, 1) = Now
            .Cells(ROW1, 2) = Cells(ce.Row, 1)
            .Cells(ROW1, 3) = arr(i)
            .Cells(ROW1, 4) = ce.Value
            .Cells(ROW1, 5) = ce.Address
            ROW1 = ROW1 + 1
            End If
        Next
err:
    End With
End Sub


3、将改变前的值存储在集合中,注:需要重新初始化,否则集合会一直增加下去

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set arr = New Collection
For Each tar In Target
    arr.Add tar.Value
Next
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值