У меня есть столбец, который может содержать ячейки с данными, которые разделены на | разделитель. Мне нужно иметь возможность заглянуть в каждую ячейку и найти конкретный текст и, если он найден, извлечь весь текст между |.
Например: ячейка A2 имеет blue story 1|red tree 2|orange flower 3|green car 4
Я хочу быть в состоянии извлечь red tree 2
с помощью функции InStr
(Если есть лучшая функция, пожалуйста, совет!)
Вот код, который у меня есть:
Sub test()
Dim Field As Variant, rng As Range, cell As Range
Set rng = Range("A1:A5")
For Each cell In rng.Cells
If InStr(cell.Value, "Red") > 0 Then
Field = Split(cell.Value, "|")
Cells(cell.Row, 2).Value = Field
End If
Next
End Sub
Там явно логическая ошибка, потому что он выводит первые тексты | в массиве, а не фактический, содержащий "красный".
Редактировать: мне нужно, чтобы он мог найти "красный" в любом массиве и, если выход, вывести этот массив в столбце рядом с ним.