Данная функция позволяет определить, содержатся ли в текстовой строке элементы массива:
Function LikeAnItemOfArray(ByVal txt$, ByVal arr) As Boolean ' возвращает TRUE, если в строке txt$ содержится хоть один элемент из массива arr For Each Item In arr pos = pos + InStr(1, txt$, Item, vbTextCompare) Next LikeAnItemOfArray = pos > 0 End Function
Один из способов применения функции:
Sub ПримерИспользования_LikeAnItemOfArray() ' список слов, каждое из которых надо проверить на наличие в текстовой строке brands = Array("DAEWOO", "HYUNDAI", "KIA", "CHEVROLET", "SSANG", "ZAZ") ' строка, которую мы будем проверять на вхождение ключевых слов txt$ = "Дэу (Nexia, Espero) HYUNDAI (Elantra XD, Lantra II, Matrix, Santa FE, Sonata II, IV, Trajet) " Dim Результат As Boolean Результат = LikeAnItemOfArray(txt, brands) End Sub
Комментарии
Добрый день.
Прошу помочь разобраться с обработкой 2-мерного массива с помощью нескольких ComboBox.
Задача следующая.
По выбору значения из одного ComboBox в остальных ComboBox должны остаться только те значения, которые соответствуют совпадениям из массива по первому ComboBox.
Причем без повторений, без пробелов и в порядке возрастания (числа) или алфавитном (строки).
И желательно посадить это все в событие ComboBox1_Change(), чтоб сразу - без лишнего нажатия кнопки.
Соответственно, при выборе критерия во втором ComboBox с остальными происходило тоже самое.
Подскажите шаблончик. Спасибо.
При чем в массиве строк txt (а не просто значений). По частичному совпадению.
Ребят, подскажите, пожалуйста, как сделать, чтобы искал макрос не в строке (txt), а в массиве (array)? Заранее спасибо!
Отправить комментарий