如何在 Excel VBA使用批注记录单元格的修改情况
发布时间:2022-11-04 10:14 [ 我要自学网原创 ] 发布人: 秋文-27173 阅读: 5625

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

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 VBA入门教程2020
我要自学网商城 ¥60 元
进入购买
文章评论
1 条评论 按热度排序 按时间排序 /350
遵守中华人民共和国的各项道德法规,
承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。
学习达人
风采人生 展开
这个不错,值的收藏,大神的杰作
2023年09月18日 09:24
0 回复
V
特惠充值
联系客服
APP下载
官方微信
返回顶部
分类选择:
电脑办公 平面设计 室内设计 室外设计 机械设计 工业自动化 影视动画 程序开发 网页设计 会计课程 兴趣成长 AIGC