Я бы рекомендовал избегать VBA для этого процесса, поскольку это легко сделать с помощью функций Excel.Если вы хотите сделать это через VBA, вы можете просто пройтись по списку продуктов и найти ключевое слово, добавив его в массив, если «Cheetos» содержится в определенном значении ячейки с использованием подстановочного знака, например:
Это может быть изменено, чтобы запускаться при смене ячейки D4, если необходимо, и, конечно, могут быть сделаны некоторые изменения, чтобы гарантировать, что форматирование и т. Д. Может быть выполнено по вашему вкусу.
Sub test()
Dim wb As Workbook
Dim rng As Range, cell As Range
Dim s_key As String, s_find() As String
Dim i As Long
Set wb = Application.ThisWorkbook
Set rng = wb.Sheets("Sheet1").Range("B2:B8")
s_key = wb.Sheets("Sheet2").Range("D4").Value
wb.sheets("Sheet2").Range("C6:F9999").clearcontents
i = 0
For Each cell In rng
If cell.Value Like "*" & s_key & "*" Then
ReDim Preserve s_find(3, i)
s_find(0, i) = cell.Offset(0, -1).Value
s_find(1, i) = cell.Value
s_find(2, i) = cell.Offset(0, 1).Value
s_find(3, i) = cell.Offset(0, 2).Value
i = i + 1
End If
Next cell
wb.Sheets("Sheet2").Range("C6:F" & 5 + i).Value = Application.WorksheetFunction.Transpose(s_find)
End Sub