ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何监控报表的填写记录详情

如何监控报表的填写记录详情

作者:绿色风 分类: 时间:2022-08-18 浏览:66
楼主
nothingwmm
要求:实验数据的记录如果是一次性输入的话,就正常显示,如果被修改过,则将修改的日期时间和内容自动添加到相应单元格的批注里,避免实验数据的假记录。需要追踪每一次修改记录。一下代码由KevinChengcw版主原创。将所有操作记录过程保存一个表格里,并且深度隐藏。

 

  1. Dim Dic As Object
  2. Private Sub Workbook_Open()
  3. Dim Rng As Range
  4. Set Dic = CreateObject("scripting.dictionary")
  5. For Each Rng In Selection
  6.     Dic.Add Rng.Address, Rng.Formula
  7. Next Rng
  8. End Sub
  9. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  10. Dim Rng As Range
  11. Application.EnableEvents = False
  12. If Sh.Name <> Sheet4.Name Then
  13.     For Each Rng In Target
  14.         If Dic(Rng.Address) <> Rng.Formula Then
  15.             With Sheet4.Cells(Sheet4.Cells(Sheet4.Rows.Count, 1).End(3).Row + 1, 1)
  16.                 .Value = Sh.Name
  17.                 .Offset(, 1) = Rng.Address
  18.                 .Offset(, 2) = Dic(Rng.Address)
  19.                 .Offset(, 3) = Rng.Value
  20.                 .Offset(, 4) = Now
  21.                 .Offset(, 5) = Application.UserName
  22.             End With
  23.         End If
  24.     Next Rng
  25. End If
  26. Application.EnableEvents = True
  27. End Sub
  28. Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  29. Dim Rng As Range
  30. On Error Resume Next
  31. If Sh.Name <> Sheet4.Name Then
  32.     Dic.RemoveAll
  33.     For Each Rng In Intersect(Target, Sh.UsedRange)
  34.         Dic.Add Rng.Address, Rng.Formula
  35.     Next Rng
  36. End If
  37. End Sub


这样的报表供实验人员如实填写,如果需要查看,添加一下模块,就可以进行“解密”了。类似于参看黑匣子哦。

 
  1. Sub test()
  2. For Each Sh In ActiveWorkbook.Sheets
  3. Sh.Visible = True
  4. Next
  5. End Sub



如实填写实验数据 填写版.rar
2楼
余方方
谢谢分享
3楼
纵鹤擒龙水中月
谢谢分享
4楼
我是小马儿
类似log,这个好。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap