Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как организоавть поиск в пределах одного фрагмента текста?

248
15 мая 2008 года
Dmitry2064
590 / / 06.12.2006
Задачка - найти предлоги в абзаце/предложении и заменить их на что-нить.
Для этого я выделил обрабатываемый абзац и сделал так:

Код:
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 'обработали один вид заголовка


Можно ли как-то записать, что бы цикл повторялся только внутри искомого фрагмента текста?
16K
15 мая 2008 года
Alfá
59 / / 12.01.2007
Искомый текст скопируй в буфер.
17K
16 мая 2008 года
HookEst
144 / / 27.03.2008
Код:
With Selection.Find
    .ClearFormatting
    .Text = "<??>"
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchWildcards = True
    .Replacement.ClearFormatting
    .Replacement.Text = "!!!"
    .Execute Replace:=wdReplaceAll
  End With

ps Запись макросов очень помогает
248
18 мая 2008 года
Dmitry2064
590 / / 06.12.2006
Цитата: HookEst
Код:
With Selection.Find
    .ClearFormatting
    .Text = "<??>"
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchWildcards = True
    .Replacement.ClearFormatting
    .Replacement.Text = "!!!"
    .Execute Replace:=wdReplaceAll
  End With

ps Запись макросов очень помогает



Это-то понятно. В приведенном мной коде Range не воспринимается как "участок" поиска, а ищется дальше по всему тексту. Поэтому приходится измерять позицию курсора по краю выделения найденного абзаца и потом при дальнейшем поиске " ^?^? " проверять, не вышли ли координаты найденного за интервал. Если вылезло, то прекращать поисх вхождения и искать следующий абзац нужного стиля.
А надо, чтобы поиск проходил только в диапазоне Range. Тут видимо проблема в верном написании/использовани команды.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог