Страницы: 1
RSS
Удалить указанное слово из текста
 
Здравствуйте
Подскажите пожалуйста как удалить уникальное слово за одну попытку (используя диалоговое окно "Заменить") так, чтобы оно удалялось как целое, а не как часть другого слова
?
Если использовать пробелы с обеих сторон слова, то я не знаю как мне удалить тогда слова вначале и в конце, да так чтоб не зацепить другие слова.
К примеру необходимо удалить слово:
in
в тексте:
interface bookinbook runin interface,bookinbook,runin interface;bookinbook;runin In book  of library Book in list
Our place in In,book,of,library Book,in,list Our,place,in In;book;of;library Book;in;list Our;place;in
должно получиться:
interface bookinbook runin interface,bookinbook,runin interface;bookinbook;runin book  of library Book list Our place book,of,library Book,list Our,place book;of;library
Book;list Our;place
 
указанный инструмент, не заточен под намеченные действия. В отличии от Word где замена с использованием маски на высоте.
По вопросам из тем форума, личку не читаю.
 
Как тогда это лучше реализовать не за один проход, но с учетом того что перед словом и после может быть любой символ?
 
Код
Sub bb()
  Dim rg As Range
  For Each rg In Selection
    rg = ReplaceWord(rg, "in")
  Next
End Sub

Function ReplaceWord(InW, Wd)
  Dim re
  Set re = CreateObject("VBScript.RegExp")
  re.Pattern = "(\W)" & Wd & "(\W)": re.Global = True: re.ignorecase = True
  ReplaceWord = InW: If re.test(InW) Then ReplaceWord = re.Replace(InW, "$1$2")
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Объясните, что Вы хотели донести этим высказыванием:
Цитата
seregasss435 написал: с учетом того что перед словом и после может быть любой символ?
Некорректное выражение. Любой символ - это и буква тоже. Но если буква - то она не может быть перед словом или после него - она часть слова.
 
Под любым символом я подразумеваю все кроме букв и цифр. К символам отнесем пробелы , запятые , точки с запятой, возможно табуляции и тд.

Ігор Гончаренко Спасибо
 
Ігор Гончаренко Спасибо
 
надеюсь разобрались кaк пользоваться?
отмечаете диапазон ячеек, в которых нужно провести замены, выполняете макрос bb. все - в этих ячейках слово in будет удалено (если это отдельное слово) правда есть один косяк вместо  in останется 2 пробела((( или что там было вокруг него
с этим еще нужно поработать дополнительно, проще всего заменить 2 пробела на один)
Изменено: Ігор Гончаренко - 22.12.2021 00:00:57
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Всем Спасибо.

С кодом разобрался.
Под этот код и не только хотелось бы чтоб был код который выделял все заполненые ячейки (данными).
 
Хотеть не вредно :)
Вопрос не по теме
 
Цитата
написал:
хотелось бы чтоб
тут все читают что вы написали о задаче, и никто не представляет что в это время вам хотелось
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Разбираюсь с этим решением:
https://docs.microsoft.com/ru-ru/office/vba/api/excel.range.specialcells
 
это не решение, это метод обьекта Range, который можно применять в самых разных решениях (ситуациях)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх