如何修改Word的ReinsertComments宏仅重新插入指定作者批注?
针对Word批注重新插入宏的问题解答
问题1:是否可以按作者指定要重新插入的批注?
完全可以,通过判断批注的Author属性就能筛选特定作者的批注,只对符合条件的执行重新插入操作。
问题2:是否可通过If/Then语句指定目标用户名?
当然可以,你提到的If myComment.Author = "Jane" Then这类语句完全可行,直接匹配批注作者的用户名即可。
问题3:If/Then和End If部分的插入位置
需要把删除原批注并重新插入的逻辑包裹在判断语句里,具体是在Set myComment = ActiveDocument.Comments(i)之后,Next i之前。
修改后的完整宏代码
Sub CommentsReinsert() Dim myComment As Comment Dim myComText As String Dim comStart Dim comEnd Dim i On Error GoTo Done Application.ScreenUpdating = False If ActiveDocument.TrackRevisions = True Then With ActiveDocument .TrackRevisions = False End With End If For i = ActiveDocument.Comments.Count To 1 Step -1 Set myComment = ActiveDocument.Comments(i) ' 在这里添加判断语句,替换成你要筛选的用户名 If myComment.Author = "Jane" Then myComText = myComment.Range.Text comStart = myComment.Scope.Start comEnd = myComment.Scope.End myComment.Reference.Select myComment.Delete ActiveDocument.Range(comStart, comEnd).Select ActiveDocument.Comments.Add _ Range:=Selection.Range, Text:=myComText End If ' 结束判断 Next i ActiveWindow.ActivePane.Close Application.ScreenUpdating = True Done: End Sub
说明
- 把代码里的
"Jane"替换成你实际要筛选的作者用户名即可 - 原宏采用倒序遍历批注的逻辑(从Count到1),能避免因删除批注导致的索引错乱问题,这个逻辑可以保留使用
内容的提问来源于stack exchange,提问作者Figgie10
相关产品推荐
相关产品推荐

