Как написать скрипт VB, чтобы найти несколько ключевых слов во всех ячейках и выделить каждое ключевое слово?

В настоящее время у меня есть список ключевых слов (например, CFO, CTO, временный менеджер и т. Д.), И я хочу иметь макрос, назначенный кнопке, которая может искать все ячейки в столбце E на листе 1, которые содержат эти ключевые слова, а затем возвращают результат, а также выделите ключевое слово в ячейке.

  • Каждое ключевое слово находится в отдельной ячейке в столбце А листа 2.
  • Если в списке есть одно ключевое слово, оно будет искать одно, но если их будет больше, оно будет искать комбинацию.

Вот скриншот, чтобы проиллюстрировать то, что я описал выше

Я нашел что-то в Интернете с предложением использовать автофильтр, но я могу использовать его только для поиска по одному ключевому слову. Вот что я попробовал:

Sub EmailFilter()

Application.ScreenUpdating = False

With Worksheets("Sheet1").Columns("E:E")
        .AutoFilter Field:=1, Criteria1:= _
    "=*" & Worksheets("Sheet2").Range("A2:A10") & "*", Operator:=xlAnd
    End With

Application.ScreenUpdating = True

End Sub

Заранее спасибо.

1 ответ

Приведенный ниже код заменит все совпадения одним цветом (я выбрал синий). Вы можете написать этот макрос в модуле, а затем создать кнопку управления формой и назначить макрос кнопке.

Sub macro()
Dim a As Integer, x As String, mystring As String
a = 2
Sheets("Sheet2").Activate
Cells(a, 1).Activate
Do While ActiveCell.Value <> ""
    x = ActiveCell.Value
    p = Len(x)
    Application.GoTo Sheet1.Range("E2")
    Do While ActiveCell.Value <> ""
        mystring = ActiveCell.Value
        If InStr(mystring, x) > 0 Then
            Position = InStr(1, mystring, x)
            If Position > 0 Then
                ActiveCell.Characters(Position, p).Font.Color = RGB(255, 0, 0)
            End If
        End If
        ActiveCell.Offset(1, 0).Activate
    Loop
    a = a + 1
    Application.GoTo Sheet2.Cells(a, 1)
Loop
End Sub

Дайте мне знать, если у вас есть какие-то особые требования, чтобы код мог быть изменен. Надеюсь, это поможет.

Другие вопросы по тегам