Вопрос №9550 Как в Excel найти значения в диапазоне других значений

Вопрос:

Как в Excel найти диапазон значений в диапазоне других значений. Поиск частичного вхождения значений одного столбца в другом.

Подробный ответ:

Очень часто в Excel необходимо найти значения из одного диапазона в другом диапазоне ячеек. Например найти значения из столбца C в столбце A, причем с частичным вхождением. Для решения данного вопроса нам поможет VBA. Представленный ниже код ищет значения из столбца C в Столбце A и найденные значения выделяет красным цветом. Конечно код можно адаптировать, чтобы он работал быстрее, но в этом нет необходимости так как он решает поставленную задачу.

Sub Find()
    On Error Resume Next: Err.Clear
    Dim ra As Range, cell As Range, res, i, txt$, v, pos&
    Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp))    ' диапазон для поиска
    Application.ScreenUpdating = False
 For i = 1 To 10 ' вместо 10 указать номер последний строки значений которые ищешь
txt$ = Cells(1 + i, 3).Value
    For Each cell In ra.Cells  
        pos = 1
        If cell.Text Like "*" & txt & "*" Then
            arr = Split(cell.Text, txt, , vbTextCompare)  
            If UBound(arr) > 0 Then   
                For Each v In arr     
                    pos = pos + Len(v)    
                    With cell.Characters(pos, Len(txt))
                        .Font.ColorIndex = 3    
                        .Font.Bold = True    
                    End With
                    pos = pos + Len(txt)
                Next v
            End If
        End If
    Next cell
    Next i
End Sub

Предмет: Программы |
Просмотров: | Рейтинг: 0.0/0
Всего комментариев: 0
avatar