Word VBA - 检查光标是否在两个书签之间

时间:2014-01-15 09:29:34

标签: vba word-vba bookmarks

我正在使用Word中的宏(它也使用Excel,但是nvm),我需要检查光标当前是否在两个特定的书签之间。

说实话,我不知道如何处理这个问题。我使用谷歌,我使用stackoverflow搜索,没有发现这个主题。这是我的第一个VBA版本。

请理解,我没有提供任何代码 - 正如我所说,不知道如何尝试编写它,我的研究没有返回任何结果。

1 个答案:

答案 0 :(得分:1)

以下函数将返回False或True,作为检查选择的开头是否在名称传递给函数的2个书签之间的结果。您传递书签名称的顺序无关紧要。

Function BetweenBookmarks(FirstBookmarkName, SecondBookmarkName)

    If Selection.Start > ActiveDocument.Bookmarks(FirstBookmarkName).Range.End _
        And _
        Selection.End < ActiveDocument.Bookmarks(SecondBookmarkName).Range.Start Then

            BetweenBookmarks = True

    ElseIf Selection.Start > ActiveDocument.Bookmarks(SecondBookmarkName).Range.End _
        And _
        Selection.End < ActiveDocument.Bookmarks(FirstBookmarkName).Range.Start Then

            BetweenBookmarks = True
    Else

            BetweenBookmarks = False
    End If
End Function

可以通过这种方式调用函数:

Debug.Print BetweenBookmarks("First", "Second")
Debug.Print BetweenBookmarks("Second", "First")

您可以通过更改函数中的.End.Start属性来自行进行其他修改。