【问题标题】:How to delete a line above a bookmark in Word using vba如何使用vba删除Word中书签上方的一行
【发布时间】:2015-10-30 16:56:57
【问题描述】:

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

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

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

【问题讨论】:

  • Sendkey 向上移动两行然后删除行?
  • 作为替代方案,您是否可以为要删除的两行添加书签?然后你应该可以通过删除书签的范围来删除它们。

标签: vba ms-word


【解决方案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

希望有帮助

【讨论】:

  • 谢谢,这似乎有效。我不知道 MoveStart 和 MoveEnd!感谢那!我确实需要稍微修改一下,不需要r.MoveEnd wdSentence, -1 行,至少在我的情况下不需要(书签放在空行上)。
猜你喜欢
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2020-12-22
相关资源
最近更新 更多