Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

你正在寻找更好的Excel学习教程吗?Excel技巧80集+数据透视表+函数初中高全套+VBA80集,想学的这儿全都有
查看: 157|回复: 3

[已解决] 当单元格数据变化时自动添加批注

[复制链接]
发表于 2019-12-1 10:09 | 显示全部楼层 |阅读模式
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
本帖最后由 djsh001 于 2019-12-1 22:50 编辑

我只想在指定工作表(比如sheet2)的指定列(B、C、D、G列),当单元格数据变化时自动添加批注,批注的内容是:日期+时间+“原数据”修改为“新数据”。当然了,要可以持续添加批注。
先谢谢了!!!
发表于 2019-12-2 09:03 | 显示全部楼层
回复

使用道具 举报

发表于 2019-12-2 15:02 | 显示全部楼层
网络限制,不能上附件,请参考以下代码及说明:
说明:
1、原来单元格为空时正常输入,不添加批注
2、原来单元格有内容时添加批注
3、原来单元格有内容和批注时,批注内容增加
4、删除单元格内容时,批注一起删除

注意:一次操作多个单元格时,不作任何处理。

代码:
  1. Public Ori$

  2. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3. If Intersect([b:d,g:g], Target) Is Nothing Then Exit Sub
  4. If Target.CountLarge > 1 Then Exit Sub
  5. Ori = Target
  6. End Sub

  7. Private Sub Worksheet_Change(ByVal Target As Range)
  8. If Intersect([b:d,g:g], Target) Is Nothing Then Exit Sub
  9. If Target.CountLarge > 1 Then Exit Sub
  10. If Target = "" Then Target.NoteText "": Exit Sub
  11. If Ori = "" Then Exit Sub
  12. Dim s$
  13. If Target <> Ori Then
  14.   s = Target.NoteText & Chr(10) & Format(Now, "yy/m/d hh:mm:ss") & "+" & Ori & "+" & Target
  15.   If Left(s, 1) = Chr(10) Then s = Mid(s, 2)
  16.   Target.NoteText s
  17.   Target.Comment.Shape.TextFrame.AutoSize = True
  18. End If
  19. End Sub
复制代码

评分

参与人数 1学分 +2 收起 理由
djsh001 + 2 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-12-2 20:21 | 显示全部楼层
大灰狼1976 发表于 2019-12-2 15:02
网络限制,不能上附件,请参考以下代码及说明:
说明:
1、原来单元格为空时正常输入,不添加批注

谢谢你!太懂人心了。完全满足我的要求。再次谢谢了!大神!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2020-1-19 15:11 , Processed in 0.046800 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表