Нахождение неточного совпадения ячейки в массиве ячеек - 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