Как добавить закладку в теле Word do c с помощью взаимодействия - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть шаблон документа, который содержит несколько закладок, используемых таким образом; mDo c .Bookmarks (bookmark) .Range.Text = "Мой тест".

Теперь я хотел бы добавить новую закладку в позицию в do c в конце строки " Мой тест ", но не могу найти никаких указаний о том, как указать диапазон в;

 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"

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Оттуда, где вы находитесь, вы можете заменить

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")
0 голосов
/ 08 апреля 2020

Ваш существующий код не добавляет текст в диапазон закладок; он вставляет этот текст после закладки. Чтобы добавить текст в диапазон закладок, используйте что-то вроде следующего кода 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...