Вот код.Я отдаю должное tompols с этого форума (я основал свой код на этом): http://en.kioskea.net/forum/affich-242360-copy-row-if-a-range-of-column-matches-a-value
ОБНОВЛЕНИЕ : код переписан, чтобы быть более эффективным с некоторыми фантастическими пунктами из Жан-Франсуа Корбетт реализован (спасибо!).В конце я также добавил окно сообщения, в котором сообщалось, сколько строк было скопировано.
Я настроил код так, чтобы он выполнял то, что вам нужно.Когда вы запускаете макрос (убедитесь, что вы не на листе 2), происходит следующее: появляется окно.Введите слово, по которому вы хотите фильтровать (в вашем случае финансирование), и оно будет искать в K: Q ячейки, которые его содержат.Когда будет найдено совпадение, будет скопирован весь столбец на лист 2.
Sub customcopy()
Application.ScreenUpdating = False
Dim lastLine As Long
Dim findWhat As String
Dim toCopy As Boolean
Dim cell As Range
Dim i As Long
Dim j As Long
findWhat = CStr(InputBox("Enter the word to search for"))
lastLine = ActiveSheet.UsedRange.Rows.Count
j = 1
For i = 1 To lastLine
For Each cell In Range("K1:Q1").Offset(i - 1, 0)
If InStr(cell.Text, findWhat) <> 0 Then
toCopy = True
End If
Next
If toCopy = True Then
Rows(i).Copy Destination:=Sheets(2).Rows(j)
j = j + 1
End If
toCopy = False
Next
i = MsgBox(((j - 1) & " row(s) were copied!"), vbOKOnly, "Result")
Application.ScreenUpdating = True
End Sub
Принятие ответов (я заметил, что вы новичок здесь): Если это работает для вас, пожалуйста, нажмите стрелку, которая появляется в верхнейосталось принять этот ответ.Спасибо!