用批注记录单元格的修改情况

网友投稿 772 2025-03-31

用批注记录单元格的修改情况

本文为《别怕,Excel VBA其实很简单(第3版)》随书问题参-

在工作表模块的代码窗口中写入下面的全部代码,返回工作表中修改单元格,批注会自动记录每次修改的信息。

用批注记录单元格的修改情况

Option Explicit

Dim RngValue As String '定义一个模块给变量,用于保存单元格中的数据Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count <> 1 Then Exit Sub '选中多个单元格时退出程序 If Target.Formula = "" Then '根据选中的单元格内容给变量RngVaue赋值 RngValue = "空" Else RngValue = Target.Text End IfEnd Sub

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count <> 1 Then Exit Sub Dim Cvalue As String '定义变量保存单元格修改后的内容 If Target.Formula = "" Then '判断单元格是否被修改为空单元格 Cvalue = "空" Else Cvalue = Target.Formula End If If RngValue = Cvalue Then Exit Sub '如果单元格修改前后的内容一样则退出程序 Dim RngCom As Comment '定义一个批注类型的变量,名称为RngCom Dim ComStr As String '定义变量ComStr,用来保存批注的值 Set RngCom = Target.Comment '将被修改单元格的批注赋给变量RngCom If RngCom Is Nothing Then Target.AddComment '如果单元格中没有批注则新建批注 ComStr = Target.Comment.Text '将批注的内容保存到变量ComStr中 '----重新修改批注的内容=原批注内容+当前日期和时间+原内容+修改后的新内容 Target.Comment.Text Text:=ComStr & Chr(10) & _ Format(Now(), "yyyy-mm-dd hh:mm") & _ " 原内容:" & RngValue & _ "修改为: " & Cvalue Target.Comment.Shape.TextFrame.AutoSize = True '根据批注内容自动调整批注大小End Sub

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:密信技术亮相英国2019网络安全与数据保护峰会
下一篇:kafka源码解析之三:Log模块读写源码分析——(三)
相关文章