2014-01-15 44 views
0

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

说实话,我不知道如何解决这个问题。我用谷歌,我用了stackoverflow搜索,并没有发现这个话题。这是我第一个Word的VBA。

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

+0

您想用哪种方式指出应该考虑哪些书签?通过写它的名字? –

+0

准确地给出他们的名字。 – murvs

回答

1

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

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特性使一些自己的其他修改。

+0

非常感谢。我不知道,我可以使用>和<接受范围! – murvs

+1

如果这对你有效,请不要忘记[[这]](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。 –

+0

完成!我今天很匆忙,而我在这里是新人。 – murvs

相关问题