[VBA]批注记录修改前内容
2013-10-10 19:44
316 查看
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
Dim Str As String
Str = "A1:D10,F:H,K:L" '限制添加批注 单元格区域
'Str = "A1:J10" '限制添加批注 单元格区域
If Target.Rows.Count = Rows.Count Or Target.Column = Columns.Count Then Exit Sub
If Not Intersect(Target, Range(Str)) Is Nothing Then
Application.ScreenUpdating = False
Dim Rag As Range, Tim As String, Arr, Brr
Tim = Format(Now(), "yyyy年m月d日hh:mm:ss")
For Each Rag In Intersect(Target, Range(Str))
If Not Rag.Comment Is Nothing Then
Arr = Split(Rag.Comment.Text, vbCrLf)
Brr = Split(Arr(UBound(Arr)), "修改为: ")
If Trim(Rag.Value) = Trim(Brr(UBound(Brr))) Or (Trim(Rag.Value) = ""
And Trim(Brr(UBound(Brr))) = "[空白]") Then Exit Sub
Rag.Comment.Text Rag.Comment.Text & vbCrLf & Tim & "修改为: " & IIf(Trim(Rag) = "", "[空白]", Rag)
Else
If Trim(Rag) <> "" Then Rag.AddComment Tim & "修改为: " & Rag
End If
With Rag.Comment.Shape '美化批注
''判断是否已经设置过;如果已经设置过了,就不再设置
If (.AutoShapeType = msoShapeRoundedRectangle) = False Then
.TextFrame.AutoSize = True '自适应大小
.AutoShapeType = msoShapeRoundedRectangle '圆角边框
.Line.ForeColor.SchemeColor = 53 '边框颜色
.Line.Weight = 1 '边框粗细
.TextFrame.Characters.Font.ColorIndex = 5 '字体颜色
End If
End With
Application.ScreenUpdating = True
Next
End If
err:
End Sub
On Error GoTo err
Dim Str As String
Str = "A1:D10,F:H,K:L" '限制添加批注 单元格区域
'Str = "A1:J10" '限制添加批注 单元格区域
If Target.Rows.Count = Rows.Count Or Target.Column = Columns.Count Then Exit Sub
If Not Intersect(Target, Range(Str)) Is Nothing Then
Application.ScreenUpdating = False
Dim Rag As Range, Tim As String, Arr, Brr
Tim = Format(Now(), "yyyy年m月d日hh:mm:ss")
For Each Rag In Intersect(Target, Range(Str))
If Not Rag.Comment Is Nothing Then
Arr = Split(Rag.Comment.Text, vbCrLf)
Brr = Split(Arr(UBound(Arr)), "修改为: ")
If Trim(Rag.Value) = Trim(Brr(UBound(Brr))) Or (Trim(Rag.Value) = ""
And Trim(Brr(UBound(Brr))) = "[空白]") Then Exit Sub
Rag.Comment.Text Rag.Comment.Text & vbCrLf & Tim & "修改为: " & IIf(Trim(Rag) = "", "[空白]", Rag)
Else
If Trim(Rag) <> "" Then Rag.AddComment Tim & "修改为: " & Rag
End If
With Rag.Comment.Shape '美化批注
''判断是否已经设置过;如果已经设置过了,就不再设置
If (.AutoShapeType = msoShapeRoundedRectangle) = False Then
.TextFrame.AutoSize = True '自适应大小
.AutoShapeType = msoShapeRoundedRectangle '圆角边框
.Line.ForeColor.SchemeColor = 53 '边框颜色
.Line.Weight = 1 '边框粗细
.TextFrame.Characters.Font.ColorIndex = 5 '字体颜色
End If
End With
Application.ScreenUpdating = True
Next
End If
err:
End Sub
相关文章推荐
- OFFICE 修改记录保存在单元格批注中vba
- 添加用户操作历史记录时,纪录用户修改内容用反射技术实现
- Python 逐行修改txt每条记录的内容
- 软件测试典型问题记录-修改窗口页面存在两个页签,修改后在某个页签点确定,另一页签内容未修改
- VBA实现批量修改Word文档的页脚内容
- springboot详细记录业务修改内容,包含修改前后具体字段的值的具体变化
- 在开发修改了分支内容之后但是在历史中没有看到开发的提交记录
- SOE记录 软件的维护、修改、扩展功能 口令功能
- 记录远程桌面的连接登录日志和修改3389连接端口方法
- javascript 原生js修改浏览器复制、粘贴内容
- 使用RandomAccessFile类修改文件内容
- asp.net后台修改title值,去除title标题内容前面的空格
- PHP与MySQL——修改记录
- 获取IE可见高度和内容高度 记录
- 错误 frm-40654 记录已经被另一个用户更新,重新查询以查看修改
- JAVA修改excel的内容
- 【Unity3D自学记录】自制插件之简单批量修改
- Android实现类似execel的表格 能回显并能修改表格内容的方法
- 修改war包内容
- magento修改发送邮件内容和订单邮件提醒设置