Поиск в столбце по словарю - VBA
Формулировка задачи:
Добрый день.
Дано 2 листа: "данные" и "словарь".
На листе "данные" в столбце T содержатся рукописные описания фин операций, нужно по значениям из столбца А листа "словарь" произвести нечувствительный к регистру поиск по ключевым словам. В случае нахождения искомого слова проставлять в столбец BB значение 1.
По аналогии с фильтром "содержит", но фильтром пользоваться не получается, потому что:
1) в данных содержатся пустые ячейки (разрывы)
2) словарь по которому нужно вести поиск состоит из десятка слов
Попробовал использовать чужой код, цикл там вроде рабочий, но завис на том что не могу изменить определение массивов в готовом макросе на массивы которые у меня на листах.
Размер таблицы около 100 000 строк, помогите пожалуйста двоечнику.
Решение задачи: «Поиск в столбце по словарю»
textual
Листинг программы
Option Compare Text Sub Test() Dim Dic As Object, Mas, Res, El, i&, cRow&, f As Boolean Set Dic = CreateObject("scripting.dictionary") Dic.comparemode = 1 With Sheets("словарь") For Each El In .Range(.Cells(1), .Cells.End(xlDown)).Value Dic("*" & El & "*") = 0 Next End With With Sheets("данные") Mas = .Range(.[t2], .Cells(.Rows.Count, "T").End(xlUp)).Value End With cRow = UBound(Mas) ReDim Res(1 To cRow, 1 To 1) For i = 1 To cRow f = False For Each El In Dic.keys If Mas(i, 1) Like El Then f = True Exit For End If Next If f Then Res(i, 1) = 1 Next Sheets("данные").[bb2].Resize(cRow).Value = Res End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д