2015-10-30 166 views
0

我有一个带有各种书签的Word文档。根据数据库中的规范,我循环遍历所有这些规范并更改范围的文本。在某些情况下,我需要删除书签上方的两行。我相信这可以通过几行代码完成,但是我一直无法获得任何工作。我得到的最接近的是:如何在Word中使用vba删除上面的书签行

Application.ActiveDocument.Bookmarks(1).Range.Sentences(1).Delete 

在我的项目中,我的每个书签范围只有一行(一句)。由于我要删除的两行代码位于书签上方(而不在其范围内)。我怎么能抵消Sentences成员让我这样做?

+0

Sendkey到上移两行,然后删除线? – Chrismas007

+0

作为一种替代方法,您是否可以为要删除的两行添加书签?然后,您应该可以通过删除书签的范围来删除它们。 –

回答

1

试试这个:

Sub DeletePrevTwoSentences() 
    Dim r As Word.Range 

    Set r = ActiveDocument.Bookmarks("TheBookmark").Range 
    Debug.Print r.start, r.end ' Just for testing 

    ' Move the start of r back two sentences 
    r.MoveStart wdSentence, -2 

    ' Move the end of r back one sentence 
    ' Assumes the bookmark refers to an entire sentence that shouldn't get deleted 
    ' Could also set end = start, then move end +2 sentences. 
    r.MoveEnd wdSentence, -1 
    Debug.Print r.start, r.end ' Just for testing 
    r.Delete 
End Sub 

希望帮助

+0

谢谢,这似乎工作。我不知道MoveStart和MoveEnd!感谢那!我确实需要修改它,'r.MoveEnd wdSentence,-1'行不是必需的,至少它不是我的情况(书签放在一个空行上)。 –