我正在尝试在我的OpenOffice Writer上编写一个宏来删除活动word文档中的所有注释,到目前为止,我实际研究和拼凑在一起的代码可以在下面找到。
Sub RemoveAllComments()
Dim i as Integer
For i = doc.Comments.Count To 1 Step -1
doc.Comments(i).Delete
Next i
End sub
我的编译器给了我一个“对象变量未设置”错误,我不确定这是如何应用于我拼凑在一起的代码。我对此很陌生,我甚至不知道To 1 Step -1
甚至意味着什么!
我真的很感谢你的帮助!
答案 0 :(得分:1)
对于OpenOffice Writer 4.0.0,确认以下代码将删除文档中的所有注释。
sub RemoveAllComments2
rem ----------------------------------------------------------------------
rem Define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem Get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteAllNotes", "", 0, Array())
end sub
您的原始代码适用于Microsoft Word,我也提供了解决方案。对于Word 2007,2010和2013,以下代码将删除活动文档中的所有注释。
Sub RemoveAllComments()
Dim n As Long
For n = ActiveDocument.Comments.Count To 1 Step -1
ActiveDocument.Comments(n).Delete
Next 'n
End Sub
Count To 1 Step -1
说是从Count
开始,倒数到1
,增量为1。