Нахождение неточного совпадения ячейки в массиве ячеек - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д