1

Тема: Поиск в области(выделенной\абзаца) по маске

Интересует вопрос о возможности получить найденный текст в абзаце. Осуществляю поиск в абзаце по маске и получить ответ - Найдено\нет легко (.Found), но текст не выделяется как при поиске по всему документу и получить значение найденного (вроде Selection.range.text) не представляется возможным.
Вот код поиска и пример маски:

With oRev.Paragraphs(iSetUp).Range.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Execute FindText:="ТР[!A-Za-zА-яЁё\[]ТС[!A-Za-zА-яЁё\[]{1;}", MatchWildcards:=True, Forward:=True

        If .Found = True Then

        End If
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

2

Re: Поиск в области(выделенной\абзаца) по маске

Можно прям удалять. Так глупо себя чувствуешь, когда спрашиваешь, не попробовав до этого все возможные варианты.
.Parent вернёт найденное значение

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

3

Re: Поиск в области(выделенной\абзаца) по маске

Странно он работает. В следующем параграфе то же значение выбивает.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

4

Re: Поиск в области(выделенной\абзаца) по маске

Как то была задача из документа вытащить все электронные адреса в другой документ для создания списка рассылки. На просторах интернета нашел следующий код, очень слегка допилил. Может сгодится в как конструкция осуществления поиска.

Sub CopyAddressesToOtherDoc()
'извлекает все email из документа и размещает в новом документе столбиком
Dim Source As Document, Target As Document, myrange As Range
Set Source = ActiveDocument
Set Target = Documents.Add
Application.ScreenUpdating = False
Source.Activate
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting

With Selection.Find
Do While .Execute(findText:="[+0-9A-z._-]{1,}\@[A-z.-]{1,}", _
MatchWildcards:=True, Wrap:=wdFindStop, Forward:=True) = True
Set myrange = Selection.Range
Target.Range.InsertAfter myrange & vbCr
Loop
End With
Selection.HomeKey Unit:=wdStory
Target.Activate
End Sub
"Ты не умничай, ты пальцем покажи"
"Кто поработал с многоуровневым списком в Ворде, тот в цирке не смеется"

5

Re: Поиск в области(выделенной\абзаца) по маске

AlexStar пишет:

Как то была задача из документа вытащить все электронные адреса в другой документ для создания списка рассылки. На просторах интернета нашел следующий код, очень слегка допилил. Может сгодится в как конструкция осуществления поиска.

Sub CopyAddressesToOtherDoc()
'извлекает все email из документа и размещает в новом документе столбиком
Dim Source As Document, Target As Document, myrange As Range
Set Source = ActiveDocument
Set Target = Documents.Add
Application.ScreenUpdating = False
Source.Activate
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting

With Selection.Find
Do While .Execute(findText:="[+0-9A-z._-]{1,}\@[A-z.-]{1,}", _
MatchWildcards:=True, Wrap:=wdFindStop, Forward:=True) = True
Set myrange = Selection.Range
Target.Range.InsertAfter myrange & vbCr
Loop
End With
Selection.HomeKey Unit:=wdStory
Target.Activate
End Sub

Так элементарнейший же код. Свой вопрос решил поиском по маске с проверкой номера выделенного абзаца(мне надо было искать по абзацам - от 1 до последнего).

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871