У меня есть код vba в слове ms, который выполняет операцию поиска.
Он находит строку с определенным цветом. переходит к началу этой строки, вставляет из буфера обмена, переходит к концу строки.
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorDarkRed
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Я не знаю много кода. просто хочу выполнить эту операцию поиска, пока все строки не будут найдены и ничего не останется. Может быть, цикл if или while?
Это не найти замену. Это найти, а затем выполнить некоторые операции. затем найдите следующий и снова выполните операции. Пока все не сделано. Если вы можете мне помочь, пожалуйста, заверните его в цикл while или for
и я записал макрос. Но как его зациклить?
Даже если бы потребовался цикл (а это не так), здесь есть много примеров того, как это сделать - я опубликовал один за последние два дня на этой самой странице !!!
Скопируйте все, что вы хотите реплицировать, в буфер обмена, затем используйте обычный поиск/замену, где:
Find = your font colour
Replace = ^c^&
и выберите «Заменить все».
Код не требуется, хотя вы можете записать его как макрос. Цикл также не требуется.
Просто еще одна проблема. Когда я записываю макрос, я устанавливаю форматирование замещаемого текста жирным шрифтом. Но макрорекордер почему-то не подхватывает ту часть, где замененный текст выделен жирным шрифтом. Кода для этого нет. Есть ли способ ввести код, чтобы найти текст красного цвета и выделить его жирным шрифтом с помощью vba?
Вы действительно не должны изменять свойства шрифта таким образом. Атрибуты красного и полужирного шрифта должны управляться с помощью определений стилей. Тем не менее: .Replacement.Font.Bold = True
Как я сказал в другой вашей теме на ту же тему, которую вы сейчас удалили, все это можно сделать с помощью простого поиска/замены. Код VBA не требуется. Более того, даже с VBA зацикливание не требуется. Ваш записанный макрос демонстрирует только то, что вы неправильно реализовали функцию «Найти/Заменить».