Если я правильно понимаю вашу проблему, вы пытаетесь вытащить «Бензин» или «Дизель» и поместить их во второй столбец, «LCV» или «Пассажирский автомобиль» для третьего столбца, а также «Вручную» и «Автомат» в третьем столбце. Если это так, то вы можете выполнить цикл до последнего значения, чтобы пройти через все, а затем вы можете использовать значение InStr, чтобы увидеть, находится ли значение в строке, как они сделали здесь .
Sub CheckEntries()
Dim i As Integer
Dim iend As Integer
Dim rng As Range
Dim str As String
Set rng = 'Put the range you are trying to do test
iend = rng.Rows.Count
' This loops until it makes it to all values
For i = 1 To iend
str = rng.Cells(i, 1).Value
If InStr(0, str, "Petrol") > 0 Then
rng.Cells(i, 2).Value = "Petrol"
ElseIf InStr(0, str, "Diesel") > 0 Then
rng.Cells(i, 2).Value = "Diesel"
Else
rng.Cells(i, 2).Value = ""
End If
If InStr(0, str, "LCV") > 0 Then
rng.Cells(i, 2).Value = "LCV"
ElseIf InStr(0, str, "Passenger car") > 0 Then
rng.Cells(i, 2).Value = "Passenger car"
Else
rng.Cells(i, 2).Value = ""
End If
If InStr(0, str, "Manual") > 0 Then
rng.Cells(i, 2).Value = "Manual"
ElseIf InStr(0, str, "Automatic") > 0 Then
rng.Cells(i, 2).Value = "Automatic"
Else
rng.Cells(i, 2).Value = ""
End If
Next i
End Sub
Этот код будет пустым, если значение не содержит значение в строке. Это должно помочь с отладкой, если с текстом в столбце 1 что-то не так.