1

我正在尝试在我的 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意思!

我将衷心感谢您的帮助!

4

1 回答 1

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

意思是从1Count To 1 Step -1开始Count并向后计数1

于 2013-09-12T10:10:19.423 回答