Тема: VBA: поиск и форматирование части текста ячейки в Excel
Макрос ищет в таблице Excel на текущем листе латинские символы и выделяет их красным цветом, но не всю ячейку и не всё слово, и именно латинскую букву. То есть, если встретится слово "прNвет" - покрасит букву N. Пример можно использовать и для работы с выделенным диапазоном, см. комментарии в коде.
Потребуется подключить библиотеку "Microsoft VBScript Regular Expressions", в редакторе Visual Basic меню "Tools" - "References...".
Option Explicit
Sub MyCharFormat()
Dim objRegExp As New RegExp
Dim objCell As Range
Dim collMatches As MatchCollection
Dim objMatch As Match
With objRegExp
.Pattern = "[a-z]"
.IgnoreCase = True
.MultiLine = False
.Global = True
End With
' Работаем со всем рабочим листом
For Each objCell In ActiveWorkbook.ActiveSheet.UsedRange.Cells
' или…
' Работаем с выделенным диапазоном. Используем Shift и Ctrl
' для множественного выделения диапазона из нескольких областей.
'For Each objCell In Application.Selection.Cells
With objCell
If Not (IsEmpty(.Value) Or IsNull(.Value) Or IsError(.Value)) Then
Application.StatusBar = "Testing Cell(" & CStr(.Row) & "," & CStr(.Column) & ")…"
If objRegExp.Test(.Value) Then
Set collMatches = objRegExp.Execute(.Value)
For Each objMatch In collMatches
With .Characters(objMatch.FirstIndex + 1, 1).Font
.ColorIndex = 3
End With
Next objMatch
End If
End If
End With
Next objCell
Application.StatusBar = False
End Sub
Автор примера - alexii.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.