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

网友投稿 452 2022-10-07

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

本文为《别怕,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小时内删除侵权内容。

上一篇:wps怎么计算日期间隔(WPS隔天时间差计算公式)
下一篇:设置单击窗体自带的关闭按钮时,同时关闭窗体所在的工作簿
相关文章