Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2023, 13:11   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию Найти нужное и окрасить в нужный цвет

здравствуйте код
Код:
Sub Замена_текста_с_нужным_цветом_шрифта()
'избавляемся от всех полей=сначала выделяем весь документ Конрол+A, затем Конрол+Шифт+Эф9
ActiveDocument.Range.Fields.Unlink
'шрифт всего документа окрасить в чёрный цвет
ActiveDocument.Range.Font.ColorIndex = wdBlack
With Selection.Find
 'очистить формат поиска
 .ClearFormatting
 'искать нужное только в тексте с шрифтом чёрного цвета
 .Font.Color = wdBlack
 'искать текст
 .Text = "123"
 'заменять на текст
 '.Replacement.Text = ""
 'цвет шрифта у текста, который нужно заменить
 .Replacement.Font.Color = wdColorRed
End With
'выполнить все замены
Application.Selection.Find.Execute Replace:=WdReplace.wdReplaceAll
 
End Sub
что-то не срабатывает, как подправить?
это нужно для того, что замены будут в цикле и после выделения текста 123 в красный цвет уже не находило
1
2
3
спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 16.10.2023, 19:42   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

решил, спасибо всем кто заглядывал в топик))
Код:
Sub Замена_текста_с_нужным_цветом_шрифта_финиш()
vFindText = Array("123", "234")
'избавляемся от всех полей=сначала выделяем весь документ Конрол+A, затем Конрол+Шифт+Эф9
ActiveDocument.Range.Fields.Unlink
'шрифт всего документа окрасить в чёрный цвет
ActiveDocument.Range.Font.ColorIndex = wdBlack
For i = 0 To UBound(vFindText)
    With ActiveDocument.Range.Find
        'искать нужное только в тексте с шрифтом чёрного цвета
        .Font.ColorIndex = wdBlack
        .Text = vFindText(i)
        Debug.Print .Text
        'окрасить нужное шрифтом красного цвета
        .Replacement.Font.ColorIndex = wdRed
        .Execute Replace:=wdReplaceAll
    End With
Next i
MsgBox$ "Конец"
End Sub
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо преобразовать png в jpg при этом прозрачный фон в нужный цвет Illusiony HTML и CSS 1 11.12.2015 23:46
Окрасить уголки картинки в нужный цвет Evil_Net Общие вопросы Delphi 3 08.10.2015 13:13
Окрасить ячейку в цвет аналогичный другой ячейке FoxRiver Microsoft Office Excel 4 04.11.2013 21:22
найти нужное слово из нескольких в ячейках Сергей54 Microsoft Office Excel 2 26.10.2012 14:01
Одинаковые ячейки окрасить в одинаковий цвет m_v_v Microsoft Office Excel 4 28.06.2012 19:50