Страницы: 1
RSS
Выделить те слова в тексте, которые есть в отдельном списке
 
Здравствуйте! Помогите, пожалуйста.
Мне нужно сравнить два листа: в первом листе столбец с текстами из нескольких слов, а во втором листе столбец с текстами-однословниками. Мне надо сравнить эти столбцы, и если в первом листе есть совпадения со вторым столбцом, то эти слова выделить другим цветом. Т.е. в первом листе надо выделить именно слово, а не всю ячейку, где содержится это слово. Для более наглядного представления сделал скриншоты (в первом листе найденные слова из второго листа выделены красным цветом):

Можно ли такое сделать в Excel 2016? Заранее спасибо!
 
Цитата
Для более наглядного представления сделал скриншоты
Лучше бы сделали пример в формате Excel
 
Вот загрузил пример файла
 
При активном листе Лист1 запустить макрос
Код
Sub ColorAuto()
Dim i As Long
Dim j As Integer
Dim iCell As Range
Dim re As Object
Dim oMatches As Object
Dim oMatch As Object
Dim Autos()
  Application.ScreenUpdating = False
  With Worksheets("Лист2")
   Autos = .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).Value
  End With
  Columns("A").Font.Color = vbBlack
  Set re = CreateObject("VBScript.RegExp")
    re.Global = True
    re.IgnoreCase = True
    re.Pattern = Join(WorksheetFunction.Transpose(Autos), "|")
  For Each iCell In Range("A1", Cells(Rows.Count, "A").End(xlUp))
    Set oMatches = re.Execute(iCell)
      For j = 0 To oMatches.Count - 1
         Set oMatch = oMatches.Item(j)
         With iCell.Characters(Start:=oMatch.FirstIndex + 1, Length:=oMatch.Length).Font
           .Color = vbRed
         End With
      Next
  Next
    Set re = Nothing
  Application.ScreenUpdating = True
End Sub
 
Выделить цветом слова в тексте - только макросом. Но слова-совпадения можно отобразить в свободном столбце простой формулой:
=ПРОСМОТР(2;1/ПОИСК(Лист2!$A$1:$A$4;A1);Лист2!$A$1:$A$4)
 
Цитата
Kuzmich написал: При активном листе Лист1 запустить макрос
Спасибо! Но работает не совсем правильно. Макрос выделяет все совпадения, а не только слова целиком. Вот пример как он сработал
Книга1.xlsm (17.15 КБ).
Смотрим первый лист и  последнюю строку - глюкометр one touch select plus ec
И во втором листе есть такие слова как to, ch, ec. Соответственно, должен был выделиться только слово, полностью совпадающий со словом со второго листа. т.е. должен был выделиться только ec, а слова touch, select выделяться не должны, потому что эти слова содержат эти слова со второго листа, а не равны этим словам. Очень надеюсь что смог правильно объяснить.
 
Николай Контарев, прикрепляйте файлы через кнопку "Загрузить файлы", а то в тексте не всегда видно вложение.
 
Цитата
должен был выделиться только ec, а слова touch, select выделяться не должны,
Для слов английского алфавита на втором листе напишите
\bec\b
\bch\b
\bto\b
Для русского алфавита, как сделать, я не знаю
 
Kuzmich, благодарю
Страницы: 1
Наверх