Страница 1 из 1

Поиск текста Word

Добавлено: 22 дек 2008, 23:12
lebmax
Поиск текста во всем выделенном документе например К,Е,Д, если найдено удалить строки в которых найдены эти слова

Re: Поиск текста Word

Добавлено: 23 дек 2008, 01:28
Naeel Maqsudov
В выделенном фрагменте?

Код: Выделить всё

Sub qwe()
Dim FoundRange As Word.Range, WorkingRange As Word.Range
  Set FoundRange = Selection.Range
  Set WorkingRange = Selection.Range
  While FoundRange.Find.Execute(findtext:="we", Forward:=True)
    If FoundRange.Start >= WorkingRange.Start And FoundRange.End <= WorkingRange.End Then
      FoundRange.Select
      Selection.MoveStart wdLine, -1
      Selection.MoveEnd wdLine, 1
      Selection.Delete
    End If
  Wend
  Set FoundRange = Nothing
  Set WorkingRange = Nothing
End Sub

Re: Поиск текста Word

Добавлено: 02 фев 2009, 16:11
lebmax
Спасибо большое, а вот много вариантов (т.е. много слов или различных знаков) для поиска текста можно сделать в этом же макросе

Re: Поиск текста Word

Добавлено: 02 фев 2009, 19:04
Teslenko_EA
Здравствуйте lebmax.
Naeel Maqsudov предложил инструмент, а сколько "вариантов" выполнять с его помощью решать Вам.
Способ использования может выглядеть так:

Код: Выделить всё

Sub qwe(s As String)
   .....
    While FoundRange.Find.Execute(findtext:= s, .....

Код: Выделить всё

Sub delText()
   qwe "we"
   qwe "wi"
   qwe "wu"
   qwe "другой текст"
   ...
End Sub
Евгений.

Re: Поиск текста Word

Добавлено: 03 фев 2009, 16:26
Naeel Maqsudov
Хочется еще добавить про параметр MatchWildcards:=True, при котором разрешается искать по маске.

Например "<стол[ауе]>" найдет стола, столу, столе но не найдет "стола" в составе слова "столам" (из-за знака ">").
См. справку Word.

Re: Поиск текста Word

Добавлено: 07 апр 2009, 10:18
lebmax
Спасибо большое очень помогло

Re: Поиск текста Word

Добавлено: 07 апр 2009, 14:14
mc-black
Пример Naeel Maqsudov, доработанный Teslenko_EA сделать в одну строку кода:

Код: Выделить всё

Sub qwe(s As String)
    Selection.Range.Find.Execute FindText:=s, Forward:=True, ReplaceWith:="", Replace:=wdReplaceAll
End Sub