http://www.pptjcw.com

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

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

    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 If
    End 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

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

    提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

    上一篇:excel表格制作教程:在SheetChange事件中排除指定名称的工作表 下一篇:excel教程:让OnKey方法和OnTime方法的设置自动生效

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。