繁体   English   中英

使用 Word Vba 一次性插入封闭书签

[英]Insert enclosing bookmarks at once with Word Vba

我想一次添加多个封闭书签。

封闭的书签不正确。 我得到“[一月]二月]三月]”,而不是[一月][二月][三月]。

这是我的初学者代码...

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

尝试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM