检查Word 2007书签内容并执行某些操作(如果存在)

时间:2014-04-10 21:19:25

标签: word-vba word-2007

是否可以搜索书签内的内容,如果存在,请执行某些操作。

例如,如果有一个带有名为Bookmark1的书签的word文档。 Bookmark1的封闭文本是通过突出显示文本"输入的文本在这里"创建的。我想创建一个宏来检查书签中的文本是否被更改,如果不是,则删除文本,书签,之前的分节符。

下面的代码执行此操作,除非它删除书签,即使文本不同,因为它正在查找书签的名称,而不是其内容。

If ActiveDocument.Bookmarks.Exists("Bookmark1") = True Then
    ActiveDocument.Bookmarks("Bookmark1").Select
    Selection.Delete
    With Selection
        .EndKey Unit:=wdStory
        .TypeBackspace
        .Delete
    End With
End If

我真的希望If语句说出类似的话:     如果Bookmark1中的文字="输入的文字就在这里"然后做下面的所有事情,否则退出。

想点什么?

Word 2007。

1 个答案:

答案 0 :(得分:0)

如果您的文档设置得如何,以下内容应该有效,否则您需要玩一下:

'TestTxt is the default text in the bookmark (assuming that you are not including the paragraph mark in the bookmark)
Dim TestTxt As String: TestTxt = "Enter text here"
'DMRng is the range of the the bookmark you are looking at
Dim BMRng As Range: Set BMRng = ThisDocument.Bookmarks("Bookmark1").Range


If BMRng.Text = TestTxt Then
        'Start is the beginning of the bookmark - 1 (as the character before hand should be your section break?!)
        BMRng.SetRange Start:=BMRng.Start - 1, End:=BMRng.End
        BMRng.Delete
End If