Проверьте содержимое закладки Word 2007 и сделайте что-нибудь, если оно существует.

Можно ли искать контент внутри закладки и, если он существует, что-то делать.

Например, если есть текстовый документ с закладкой с именем Bookmark1. Текст, заключенный в закладку 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.


person user12059    schedule 10.04.2014    source источник
comment
Попробуйте что-нибудь вроде _1 _...   -  person Kazimierz Jawor    schedule 11.04.2014


Ответы (1)


Приведенное ниже должно работать, если ваш документ настроен так, как я думаю, в противном случае вам придется поэкспериментировать с ним:

'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
person user2554448    schedule 13.04.2014