Selection.Find.Execute '[COLOR=Green]совершили однократный поиск[/COLOR]
If Selection.Find.Found = False Then GoTo stt [COLOR=Green]'если не нашел - бросаю искать[/COLOR]
Pos1 = Selection.Start [COLOR=Green]' зафиксировали[/COLOR]
Pos2 = Selection.End '[COLOR=Green]координаты выделения[/COLOR]
Selection.InsertBefore Text:="commm"
Selection.MoveUp Unit:=wdParagraph, Count:=3 [COLOR=Green]'вернулись
на два абзаца вверх для проверки стиля предыдущ. абзаца[/COLOR]
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
'[COLOR=Green] выделили буковку, чтобы возникло выделение[/COLOR]
If Selection.Paragraphs.Style = "Заголовок 4" Then[COLOR=Green] 'проверили стиль заголовка[/COLOR]
Selection.InsertBefore Text:="commm" [COLOR=Green]'выставляю мою метку
(она нужна будет для дальнейшей работы) [/COLOR]
End If
Set myRange = ActiveDocument.Range(Start:=Pos1, End:=Pos2) [COLOR=Green]
'выставил выделение на найденное до этого, но не работает[/COLOR]
Set mySel = Selection.Range [COLOR=Green]
'продолжаю пытаться выставить прежнее выделение,
но все равно не работает[/COLOR]
Selection.MoveRight Unit:=wdCharacter, Count:=1 [COLOR=Green]' смещаюсь с выделения дальше[/COLOR]
Как выставить прежнее выделение в тексте
Нахожу нужный фрагмент текста (по имени стиля). Ставлю метку этого стиля и продолжаю искать этот стиль дальше по тексту. Но теперь возникла необходимость проверять стиль предыдущего абзаца. А потом мне надо же вернуть курсор на прежнее место, с которого продолжить поиск искомого стиля дальше (если на старое место курсор не вернуть, то макрос будет циклиться, крутясь вокруг одно и того же абзаца).
Я написал так (фрагмент кода :o ):
Код: