Проверьте содержимое закладки 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
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