Нахождение неточного совпадения ячейки в массиве ячеек - VBA

Узнай цену своей работы

Формулировка задачи:

Всем привет! На этом форуме совсем недавно. Надеюсь на вашу помощь. Передо мной встала диллема. Значит у нас есть два листа : на первом набор строк ("Запрос"), в которых будут искаться любые вхождения из массива строк 2-ого листа ("Города") . В случае, если вхождение есть - выводить в ячейке напротив, что мол "да, есть " , неважно на самом деле что будет выводиться. То есть, например, у нас есть ячейка со значением "55 55 55 курск" с листа "Запрос" и этот город есть во втором листе. Значит будет выводиться, что "да, есть совпадение". Что важно: не учитывать словоформы и регистр городов. В общем моя задача, отсеять все запросы с вхождениями городов из списка. Решить эту задачу любыми средствами, непринципиально: хоть макросом хоть как. Прикладываю файл.

Решение задачи: «Нахождение неточного совпадения ячейки в массиве ячеек»

textual
Листинг программы
Sub tt1()
    Dim a, b, c, i&, el, t$
    Set ShA = Sheets("Уже пробитая частота")
    a = Sheets("Города").[a1].CurrentRegion.Value
    b = ShA.Columns(1).CurrentRegion.Value
    ReDim c(1 To UBound(b), 1 To 1)
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For i = 1 To UBound(a)
            t = a(i, 1)
            .Item(t) = 0
        Next
        For i = 2 To UBound(b)
            s = Split(b(i, 1))
            For Each el In s
                If .exists(el) Then c(i, 1) = "да, есть": Exit For
            Next
        Next
        i = 1
        ShA.Cells(1, ShA.UsedRange.Columns.Count + 1).Resize(UBound(c), 1) = c
    End With
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы