★ 批量删除指定用户批注

有用户问:假如一篇文档存有多个用户批注,如何只删除特定用户批注?

如下图:

如何批量删除“金波”的批注,而保留其余的。

如果在审阅人里选择“金波”,而不勾选其他用户

倒是可以只显示金波的批注,而隐藏其他的。

但是WPS无法批量对批注进行操作。只能手动挨个删除,比较稳妥,但缺乏效率。

如果勾选用户后,再选“删除文档中的所有批注”。

这时候发现,其实删除的是所有用户批注。并不仅仅是在显的,那些隐藏的也被一并删除了。

因为这条命令是“忽略筛选设置”的。

源文件也没用,源文件是分开存储的。

comments.xml 里 只存储内容相关信息。

批注框架在 document.xml 里,以序号存储。没有规律可循。

没有办法批量更改。

因此找了半天,也没有办法批量删除特定用户批注,只能全部删除所有批注,或手工一条一条删除特定用户。

稍微方便的方法有两个:

  1. 给删除加上快捷键。

比如这里,在快捷工具栏定义一下,把删除批注设置为“ALT+8”快捷键,给“下一条批注”设置为“ALT+9”。

那么,筛选用户后,只要按住ALT,然后不停按8、9、8、9、8、9…… 循环

就可以用快捷键一条一条删除。

如果批注量不多,用这种方法比挨个删除有效率

删除后,其他用户批注仍可保留。

假设有几千页的批注,用上述方法删除也是费劲。

这时候就用到宏代码

Sub 删除指定用户批注()

Dim cmt As Comment

For Each cmt In ActiveDocument.Comments

If cmt.Author = "用户名" Then

cmt.Delete

End If

Next

End Sub

优点:速度快

缺点:会误删除。

同名用户也会被删除,如上述两个“金波”用户批注均已删除(尽管没有勾选)。

那么可以试试按ID号删除。

安徽省
浏览 174
收藏
3
分享
3 +1
+1
全部评论