我正在使用Word中的宏(它也使用Excel,但是nvm),我需要检查光标当前是否在两个特定的书签之间。
说实话,我不知道如何处理这个问题。我使用谷歌,我使用stackoverflow搜索,没有发现这个主题。这是我的第一个VBA版本。
请理解,我没有提供任何代码 - 正如我所说,不知道如何尝试编写它,我的研究没有返回任何结果。
答案 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
属性来自行进行其他修改。