|
各位大侠,本人工作过程发现了一个问题,需要在改动数据的时候把原来的记录及被更改日期加入批注。因更改数据量比较多,一个个输入好麻烦。
之前看到罗老师的一个帖子有相关代码,但权限不够没办法阅读,地址如下:
http://club.excelhome.net/viewth ... hlight=%C5%FA%D7%A2
现举例 如下A1单元格记录每月油价:
2009年1月15日的时候:油价油6.25下调为6.13,原来A1记录是6.25批注无任何内容。
当我把6.25改为6.13时,自动添加批注:截止2009-1-15 6.25
当2009年2月13日的时候又调了一次:由6.13调到5.89
修改成5.89后,批注再补充添加一条:截止2009-2-13 6.13
也即是说批注经过两次修改后应有两条记录如下:
截止2009-1-15 6.25
截止2009-2-13 6.13
附件如下:
20090701.rar
(2.01 KB, 下载次数: 82)
谢谢欢欢的帮助,以下为欢欢提供代码:
——————————————————————
修改记录保存在单元格批注中vba:
Dim ydtext As String '原单元格值
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
Dim mycom As Comment
Dim ybzstr As String '原标注值
'------------------判断是否添加了批注
Set mycom = Target.Comment
If mycom Is Nothing Then Target.AddComment
'------------------编辑批注内容
ybzstr = Target.Comment.Text
Target.Comment.Text Text:=ybzstr & Chr(10) & Format(Now(), "yyyy-mm-dd hh:mm") & " 原内容: " & ydtext & "修改为: " & Target.Formula
Target.Comment.Shape.TextFrame.AutoSize = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Target = "" Then
ydtext = "空"
Else
ydtext = Target.Text
End If
End If
End Sub
——————————————————————
[ 本帖最后由 Arsage 于 2009-7-1 14:37 编辑 ] |
|