Страницы: 1
RSS
Поиск строки по двум значениям
 
Добрый день.

Помогите написать макрос который ищет строку по двум значениям.
Например найти строку в диапазоне которая содержит одновременно и "АА" и "ББ".
Заранее благодарен.
 
Sarunami, для начала ознакомьтесь с Правилами (п. 2.3, в частности), а потом поясните: нашли строку, и что? Что с ней делать?
 
Здравствуйте. Ну нашел макрос такую строку, а дальше что?
Варианты: 1.Включить сирену; 2. Выключить компьютер; 3. Отправить радостное сообщение друзьям, о находке и так далее можно перечислять очень долго, но без конкретики.
 
Прошу прощения за неправильное оформления вопроса.
Прикрепил файл.

В диапазоне B1:B10 содержится какой то текст. Необходимо чтобы в ячейке F5 прописывался номер строки в которой содержаться и "АА" и "ББ" (только когда они оба там присутствуют)
 
gling, Юрий М, помогите, пожалуйста.
 
Цитата
Sarunami написал:
Необходимо чтобы в ячейке F5 прописывался номер строки в которой содержаться и "АА" и "ББ"

А если в нескольких строках находятся?
 
Юрий М, тогда только первое совпадение
 
См. вариант.
 
Юрий М, спасибо большое, очень сильно выручили. Безмерно благодарен.
 
Цитата
Sarunami написал:
тогда только первое совпадение
Здравствуйте. Можно без макроса, с помощью формулы массива
Код
=ПОИСКПОЗ(1;ЕЧИСЛО(ПОИСК("АА";B1:B10))*ЕЧИСЛО(ПОИСК("ББ";B1:B10)))

Вместо "АА" и "ББ" можно указать ячейки, в которых писать нужные сочетания букв.

Изменено: gling - 08.04.2018 23:47:57
 
gling,Юрий М, спасибо, но было необходимо с помощью макроса.

В принципе я получил ответ на свой вопрос, но если есть возможность можете подсказать как будет выглядеть макрос если параметров будет не 2 (АА и ББ), а больше, 5 или 10?
 
Если искомых не очень много, то для моего варианта добавляйте проверки. В противном случае нужно искать другой вариант.
 
Юрий М, в моем случае искомых значений будет пять, так что я думаю ваш вариант мне вполне подойдет. Еще раз спасибо
 
1. Небольшое дополнение: Если методом Find задать поиск по всему  столбцу, то он (поиск) начнется со 2-ой строки. Т. е. если ячеек,  удовлетворяющих поиску много, и если одна из них находится в 1-ой  строке, то метод Find вернет не первую ячейку, а следующую.
2. Посмотрите другой пример, в котором отсутствует указанная выше проблема и количество искомых элементов не ограничено.
Код
Option Base 1

Private Sub CommandButton1_Click()
    Dim i As Long, j As Long, a(), q
    a = Array("АА", "ББ", "пп") 'Массив искомых значений
    For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
        j = 0
        For Each q In a
            If InStr(Cells(i, 2), q) = 0 Then Exit For Else j = j + 1
        Next
        If j = UBound(a) Then
            [F5] = i: Exit Sub
        End If
    Next
End Sub
Пример во вложении.
Изменено: SAS888 - 09.04.2018 05:25:15
Чем шире угол зрения, тем он тупее.
Страницы: 1
Наверх