Страницы: 1
RSS
Задание шаблона через переменную в Like
 
Здравствуйте!

Если указывать конкретный текст в звездочках (например, "*Яблоков*"), то Like обрабатывает ячейки, содержащие данный текст. Если вместо конкретного текста указывать переменную, то звездочки справа и слева уже не поставишь и Like начинает работать как =.

Как можно выйти из ситуации с наименьшим усложнением кода?

Задача: таблица (лист 2 в приложенном файле) с фамилиями, в соседней ячейке проставлено "да", если человек выполнил задание, и пустота, если не выполнил. Фамилии повторяются, в одной ячейке может быть несколько фамилий (в этом случае считать, что каждый выполнил условие).

Надо подсчитать количество "да" по каждой фамилии, и перенести в другую таблицу (лист 1 в приложенном файле), в которой фамилии не будут повторяться и будут указаны по одной ячейке.

Код
Sub test()

    Dim iLastRowA As Long
    iLastRowA = Worksheets("1").Cells(Rows.Count, 1).End(xlUp).Row

    Dim lLastRowB As Long
    iLastRowB = Worksheets("2").Cells(Rows.Count, 1).End(xlUp).Row

    Dim i As Long
    Dim j As Long
    Dim x As String

    For i = 2 To iLastRowA

        x = Worksheets("1").Cells(i, 1)

            For j = 2 To iLastRowB

                If Worksheets("2").Cells(j, 1) Like x And Worksheets("2").Cells(j, 2) = "да" Then

                   Worksheets("1").Cells(i, 2) = Worksheets("1").Cells(i, 2) + 1

                End If

            Next

    Next

End Sub

Заранее спасибо!
 
Если может быть несколько слов (фамилий), разделенных пробелами, и искать нужно регистронезависимо, то обычно пишут в таком стиле:

Код
" " & Ucase(cells(j,1)) & " " like "* " & Ucase(x) & " *"
Изменено: sokol92 - 26.04.2020 15:33:23
Владимир
 
Добрый день!
Изменено: Андрей_26 - 26.04.2020 15:39:50
 
Огромное спасибо, очень выручили!
Страницы: 1
Наверх