Здравствуйте!
Если указывать конкретный текст в звездочках (например, "*Яблоков*"), то Like обрабатывает ячейки, содержащие данный текст. Если вместо конкретного текста указывать переменную, то звездочки справа и слева уже не поставишь и Like начинает работать как =.
Как можно выйти из ситуации с наименьшим усложнением кода?
Задача: таблица (лист 2 в приложенном файле) с фамилиями, в соседней ячейке проставлено "да", если человек выполнил задание, и пустота, если не выполнил. Фамилии повторяются, в одной ячейке может быть несколько фамилий (в этом случае считать, что каждый выполнил условие).
Надо подсчитать количество "да" по каждой фамилии, и перенести в другую таблицу (лист 1 в приложенном файле), в которой фамилии не будут повторяться и будут указаны по одной ячейке.
Заранее спасибо!
Если указывать конкретный текст в звездочках (например, "*Яблоков*"), то 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 |
Заранее спасибо!