Выполнить замену слова в выделенных фрагментах текста - VBA

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. На основе тем:Выделение фрагмента текста в Word, заключенного между заданными словами иЗамена текста в выделенном фрагменте пытаюсь реализовать требуемый функционал.

Задача.

Есть текст

Собачка...ля-ля-ля...Кошка Кошка...ля-ля-ля...Лягушка Лягушка...ля-ля-ля...Лев

Нужно вот эти ля-ля-ля заменить на другой текст, в зависимости от контекста в целом, тоесть: если внутри Собачка-Кошка, то ля-ля-ля меняем на гав-гав, если внутри чуастка Кошка-Лягушка, то ля-ля-ля меняем на Мяу-мяу.. и т.д. Причем фрагмент Собачка-Кошка может встречаться несколько раз в документе.

Собственно код:

участок текста вроде как выделяется, но вот потом замена происходит не в одном участке, а по всему файлу.
Листинг программы
  1. Dim r
  2. Dim s
  3. Set r = wordApp.ActiveDocument.Range
  4. With r.Find
  5. .ClearFormatting
  6. .Text = "Собачка*Кошка"
  7. .Forward = True
  8. .Wrap = 1
  9. .Format = False
  10. .MatchCase = False
  11. .MatchWholeWord = False
  12. .MatchAllWordForms = False
  13. .MatchSoundsLike = False
  14. .MatchWildcards = True
  15. If .Execute Then
  16. wordApp.ActiveDocument.Range(r.Start, r.End).Select
  17. Set s = wordApp.Selection.Range'пытался передать выделение,но это вообще не работает
  18. With s.Find
  19. .ClearFormatting
  20. .Text = "ля-ля-ля"
  21. .Replacement.Text = "Гав-гав-гав"
  22. .Forward = True
  23. .Wrap = 1
  24. .Format = False
  25. .MatchCase = False
  26. .MatchWholeWord = False
  27. .MatchAllWordForms = False
  28. .MatchSoundsLike = False
  29. .MatchWildcards = True
  30. End With
  31. s.Find.Execute Replace:=1
  32. Else
  33. MsgBox "Не нашли выделение", vbExclamation
  34. End If

Решение задачи: «Выполнить замену слова в выделенных фрагментах текста»

textual
Листинг программы
  1. Selection.Range.Find.Execute ",", Wrap:=wdFindStop, replacewith:="."

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы