Вставьте вложенные закладки сразу с Word Vba - PullRequest
1 голос
/ 27 апреля 2020

Я хочу добавить несколько вложенных закладок один раз.

Вложенные закладки неверны. Я получаю «[январь] февраль] март]», а не [январь] [февраль] [март].

Вот мой код для начинающих ...

Sub Execute()

    Dim arrayBookmarks()

    arrayBookmarks = Array("january", "february", "march")

    Call ManageBookmarks(arrayBookmarks)

End Sub


Function ManageBookmarks(arrayBookmarks() As Variant)

    ' Code to optimize ("With", "End With")

    Dim rangeBookmark As Range

    For i = LBound(arrayBookmarks) To UBound(arrayBookmarks)

        If ActiveDocument.Bookmarks.Exists(arrayBookmarks(i)) Then

            ' ... 

        Else

            ActiveDocument.Bookmarks.Add arrayBookmarks(i)

            Set rangeBookmark = ActiveDocument.Bookmarks(arrayBookmarks(i)).Range

            rangeBookmark.Text = arrayBookmarks(i) ' & vbLf ' line break is ideal 

            ActiveDocument.Bookmarks.Add arrayBookmarks(i), rangeBookmark

        End If

    Next i

End Function

1 Ответ

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

Попробуйте:

Function ManageBookmarks(arrayBookmarks() As Variant)
' Code to optimize ("With", "End With")
Dim rangeBookmark As Range, i As Long
With ActiveDocument
    For i = LBound(arrayBookmarks) To UBound(arrayBookmarks)
        If .Bookmarks.Exists(arrayBookmarks(i)) Then
            ' ...
        Else
            Set rangeBookmark = .Range.Characters.Last
            rangeBookmark.Collapse wdCollapseEnd
            .Bookmarks.Add arrayBookmarks(i), rangeBookmark
            Set rangeBookmark = .Bookmarks(arrayBookmarks(i)).Range
            rangeBookmark.Text = arrayBookmarks(i) ' & vbLf ' line break is ideal
            .Bookmarks.Add arrayBookmarks(i), rangeBookmark
        End If
    Next i
End With
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...