【问题标题】:How do I add a bookmark within the body of a Word doc using interop如何使用互操作在 Word 文档的正文中添加书签
【发布时间】:2020-07-20 19:48:55
【问题描述】:

我有一个包含许多书签的模板文档; mDoc.Bookmarks(bookmark).Range.Text = "我的测试"。

我现在想在文档中字符串“我的测试”末尾的位置添加一个新书签,但找不到有关如何指定范围的任何指导;

 Dim Bookmarks As Word.Bookmarks
        Dim myBookmark As Word.Bookmark
        Dim bookmarkRange As Word.Range
        Dim Selection As Word.Selection


        'doc = mWord.ActiveDocument
        Selection = mWord.Selection
        bookmarkRange = Selection.Range
        Bookmarks = mDoc.Bookmarks
        myBookmark = Bookmarks.Add("MyBookmark", bookmarkRange)   'this works but puts it at the start of the doc
        mDoc.Bookmarks("MyBookmark").Range.Text = "text inserted at MyBookmark"

我该怎么做?

【问题讨论】:

    标签: vb.net ms-word interop


    【解决方案1】:

    从你所在的位置,你可以替换

    mDoc.Bookmarks("MyBookmark").Range.Text = "text inserted at MyBookmark"
    

        Dim myRange As Word.Range
        myRange = mDoc.Bookmarks(myBookmark).Range
        myRange.Text = "text inserted at MyBookmark"
        myRange.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
        myRange.Bookmarks.Add("MyNewBookmark")
    

    【讨论】:

      【解决方案2】:

      您现有的代码不会将文本添加到书签范围;它在书签 之后插入该文本。要将文本添加到书签范围,请使用以下 VBA 代码:

      Dim BkMkRng As Range
      With ActiveDocument
        If .Bookmarks.Exists("MyBookmark") Then
          Set BkMkRng = .Bookmarks("MyBookmark").Range
          BkMkRng.Text = "My Text"
          .Bookmarks.Add "MyBookmark", BkMkRng
        End If
      End With
      

      要在该范围之后插入新书签,只需使用以下内容:

      With ActiveDocument
        If .Bookmarks.Exists("MyBookmark") Then
          Set BkMkRng = .Bookmarks("MyBookmark").Range
          BkMkRng.Collapse wdCollapseEnd
          BkMkRng.Text = "My New Text"
          .Bookmarks.Add "MyNewBookmark", BkMkRng
        End If
      End With
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-22
        • 2020-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多