'在所有过程之前用Dim语句定义的变量r1是模块级变量,应模块中所有的过程都可以使用它Pp3检测VBA
Dim r1 '定义一个模块给变量,用户保存单元格的数据Pp3检测VBA
'第一个事件过程,用于记录被更改前单元格中保存的数据Pp3检测VBA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Pp3检测VBA
If Target.Cells.Count <> 1 Then Exit Sub '选中多个单元格时退出程序Pp3检测VBA
If Target.Formula = "" Then '根据选中单元格中保存的数据,确定给变量r1赋什么值Pp3检测VBA
r1 = "空"Pp3检测VBA
ElsePp3检测VBA
r1 = Target.TextPp3检测VBA
End IfPp3检测VBA
End SubPp3检测VBA
'第二个事件过程,用于批注记录单元格修改前后的信息Pp3检测VBA
Private Sub Worksheet_Change(ByVal Target As Range)Pp3检测VBA
If Target.Cells.Count <> 1 Then Exit SubPp3检测VBA
'定义变量保存单元格修改后的内容Pp3检测VBA
Dim r2Pp3检测VBA
'判断单元格是否被修改为空单元格Pp3检测VBA
If Target.Formula = "" ThenPp3检测VBA
r2 = "空"Pp3检测VBA
ElsePp3检测VBA
r2 = Target.FormulaPp3检测VBA
End IfPp3检测VBA
'如果单元格修改前后的内容一样则退出程序Pp3检测VBA
If r1 = r2 Then Exit SubPp3检测VBA
'定义一个批注变量Pp3检测VBA
Dim r3Pp3检测VBA
'定义一个变量保存批注内容Pp3检测VBA
Dim r4Pp3检测VBA
'将被修改单元格的批注赋给变量r3Pp3检测VBA
Set r3 = Target.CommentPp3检测VBA
'如果单元格中没有批注则新建批注Pp3检测VBA
If r3 Is Nothing Then Target.AddCommentPp3检测VBA
'将批注的内容保存到变量r4中Pp3检测VBA
r4 = Target.Comment.TextPp3检测VBA
'重新修改批注的内容=原批注内容+当前日期和时间+原内容+修改后的新内容Pp3检测VBA
Target.Comment.Text Text:=r4 & Chr(10) & Format(Now(), "yyyy-mm-dd hh:mm") & "原内容:" & r1 & "修改为:" & r2Pp3检测VBA
'根据批注内容自动调整批注大小Pp3检测VBA
Target.Comment.Shape.TextFrame.AutoSize = TruePp3检测VBA
End SubPp3检测VBA |