I am working on Macro in Word (it also uses Excel, but nvm) and I need to check if cursor is currently between two specific bookmarks.
To be honest I have no idea how to approach the problem. I used google, I used stackoverflow search and found nothing on this topic. It is my first VBA for Word.
Please understand, that I do not provide any code - as I said, no idea how to try to write it and my research returned no results.
The following function will return False or True as a result of checking if the beginning of your selection is between 2 bookmarks passed by name to the function. It doesn't matter in which order you pass bookmarks name.
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
Function can be called in this way:
Debug.Print BetweenBookmarks("First", "Second")
Debug.Print BetweenBookmarks("Second", "First")
You could make some other modification on your own by changing .End
and .Start
properties within the function.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.