Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск символов в тексте и их форматирование - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Поиск символов в тексте и их форматирование
dmb2 Дата: Четверг, 02.11.2023, 17:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте!
[s]
Возникла необходимость нахождения (подсвечивания/выделения) макросом латинских букв в выделенном диапазоне.

Нашел решение через НАЙТИ-ЗАМЕНИТЬ при выборе Область поиска - текущий фрагмент все нужные символы выделяются и можно им назначить цвет.
Но макросом не смог добиться эффекта выделения искомых символов и назначение им форматирования.

Также написал следующую процедуру:

[vba]
Код
'определение латинских букв
Sub Lat()
Dim j As Object
Set myRange = Selection
Application.ScreenUpdating = False

    For Each j In myRange.Characters
        If j Like "[A-Za-z]" Then j.Font.Color = vbBlue
    Next j
Application.ScreenUpdating = True
End Sub
[/vba]

Недостаток данного способа в том, что процедура выполняется долго .
Но если указать поиск во всем документе
[vba]
Код
Set myRange = ActiveDocument.Content
[/vba]
то процедура отрабатывает в разы быстрее.

Подскажите в чём причина и можно ли улучшить быстродействие данного решения?

Также по теме:
Нашел хорошее решение подсветки искомых символов через НАЙТИ-ЗАМЕНИТЬ с помощью опции "Выделение при чтении", которое снимается при повторном вызове, что удобно. Возможно ли добиться такого эффекта макросом?
 
Ответить
СообщениеЗдравствуйте!
[s]
Возникла необходимость нахождения (подсвечивания/выделения) макросом латинских букв в выделенном диапазоне.

Нашел решение через НАЙТИ-ЗАМЕНИТЬ при выборе Область поиска - текущий фрагмент все нужные символы выделяются и можно им назначить цвет.
Но макросом не смог добиться эффекта выделения искомых символов и назначение им форматирования.

Также написал следующую процедуру:

[vba]
Код
'определение латинских букв
Sub Lat()
Dim j As Object
Set myRange = Selection
Application.ScreenUpdating = False

    For Each j In myRange.Characters
        If j Like "[A-Za-z]" Then j.Font.Color = vbBlue
    Next j
Application.ScreenUpdating = True
End Sub
[/vba]

Недостаток данного способа в том, что процедура выполняется долго .
Но если указать поиск во всем документе
[vba]
Код
Set myRange = ActiveDocument.Content
[/vba]
то процедура отрабатывает в разы быстрее.

Подскажите в чём причина и можно ли улучшить быстродействие данного решения?

Также по теме:
Нашел хорошее решение подсветки искомых символов через НАЙТИ-ЗАМЕНИТЬ с помощью опции "Выделение при чтении", которое снимается при повторном вызове, что удобно. Возможно ли добиться такого эффекта макросом?

Автор - dmb2
Дата добавления - 02.11.2023 в 17:47
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!