★ 批量删除指定用户批注
有用户问:假如一篇文档存有多个用户批注,如何只删除特定用户批注?
如下图:
如何批量删除“金波”的批注,而保留其余的。
如果在审阅人里选择“金波”,而不勾选其他用户
倒是可以只显示金波的批注,而隐藏其他的。
但是WPS无法批量对批注进行操作。只能手动挨个删除,比较稳妥,但缺乏效率。
如果勾选用户后,再选“删除文档中的所有批注”。
这时候发现,其实删除的是所有用户批注。并不仅仅是在显的,那些隐藏的也被一并删除了。
因为这条命令是“忽略筛选设置”的。
源文件也没用,源文件是分开存储的。
comments.xml 里 只存储内容相关信息。
批注框架在 document.xml 里,以序号存储。没有规律可循。
没有办法批量更改。
因此找了半天,也没有办法批量删除特定用户批注,只能全部删除所有批注,或手工一条一条删除特定用户。
稍微方便的方法有两个:
给删除加上快捷键。
比如这里,在快捷工具栏定义一下,把删除批注设置为“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号删除。