Set mRange = Selection 'якобы объявил выделенный текст местом поиска
With Selection.Find 'ищет все подряд
With mRange.Find 'не ищет вообще
.Text = " ^?^? " ''''двухбуквенный предлог
.Wrap = wdFindStop
End With
Do While mRange.Find.Execute() 'пока предлог находится
этот вариант не ищет вообще
Do While Selection.Find.Execute() 'пока предлог находится
этот вариант ищет все подряд в том числе и за пределами Range
Selection.Text = "!!!"
Selection.Collapse Direction:=wdCollapseEnd
Loop 'обработали один вид заголовка
Как организоавть поиск в пределах одного фрагмента текста?
Для этого я выделил обрабатываемый абзац и сделал так:
Код:
Можно ли как-то записать, что бы цикл повторялся только внутри искомого фрагмента текста?
Искомый текст скопируй в буфер.
Код:
With Selection.Find
.ClearFormatting
.Text = "<??>"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
.Replacement.ClearFormatting
.Replacement.Text = "!!!"
.Execute Replace:=wdReplaceAll
End With
.ClearFormatting
.Text = "<??>"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
.Replacement.ClearFormatting
.Replacement.Text = "!!!"
.Execute Replace:=wdReplaceAll
End With
ps Запись макросов очень помогает
Цитата: HookEst
Код:
With Selection.Find
.ClearFormatting
.Text = "<??>"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
.Replacement.ClearFormatting
.Replacement.Text = "!!!"
.Execute Replace:=wdReplaceAll
End With
.ClearFormatting
.Text = "<??>"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
.Replacement.ClearFormatting
.Replacement.Text = "!!!"
.Execute Replace:=wdReplaceAll
End With
ps Запись макросов очень помогает
Это-то понятно. В приведенном мной коде Range не воспринимается как "участок" поиска, а ищется дальше по всему тексту. Поэтому приходится измерять позицию курсора по краю выделения найденного абзаца и потом при дальнейшем поиске " ^?^? " проверять, не вышли ли координаты найденного за интервал. Если вылезло, то прекращать поисх вхождения и искать следующий абзац нужного стиля.
А надо, чтобы поиск проходил только в диапазоне Range. Тут видимо проблема в верном написании/использовани команды.