Вариант макросом. Предполагается, что данные начинаются со строки 2. Приложил файл, в котором работает этот макрос. В самом файле макроса нет.
[vba]
Код
Sub Добавить_киви()
Dim arr(), boolFound As Boolean Dim var, lr As Long, i As Long, ii As Long
lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A2:A" & lr).Value For i = 1 To UBound(arr) boolFound = False var = Split(WorksheetFunction.Trim(arr(i, 1)), " - ") For ii = 0 To UBound(var) If var(ii) = "киви" Then boolFound = True Exit For End If Next ii If boolFound = False Then arr(i, 1) = arr(i, 1) & " - киви" End If Next i Range("A2:A" & lr).Value = arr()
End Sub
[/vba]
Вариант макросом. Предполагается, что данные начинаются со строки 2. Приложил файл, в котором работает этот макрос. В самом файле макроса нет.
[vba]
Код
Sub Добавить_киви()
Dim arr(), boolFound As Boolean Dim var, lr As Long, i As Long, ii As Long
lr = Cells(Rows.Count, "A").End(xlUp).Row arr() = Range("A2:A" & lr).Value For i = 1 To UBound(arr) boolFound = False var = Split(WorksheetFunction.Trim(arr(i, 1)), " - ") For ii = 0 To UBound(var) If var(ii) = "киви" Then boolFound = True Exit For End If Next ii If boolFound = False Then arr(i, 1) = arr(i, 1) & " - киви" End If Next i Range("A2:A" & lr).Value = arr()
Russt, еще вариант макроса,для демонстрации переменной $&,кнопки test и повтор
[vba]
Код
Sub test() Dim i&, t$ With CreateObject("VBScript.RegExp") For i = 3 To Range("A3").End(xlDown).Row: t = Range("A" & i): .Pattern = "киви" If .test(t) = False Then .Pattern = ".+": Range("A" & i) = .Replace(t, "$& киви") End If Next End With End Sub
[/vba]
Russt, еще вариант макроса,для демонстрации переменной $&,кнопки test и повтор
[vba]
Код
Sub test() Dim i&, t$ With CreateObject("VBScript.RegExp") For i = 3 To Range("A3").End(xlDown).Row: t = Range("A" & i): .Pattern = "киви" If .test(t) = False Then .Pattern = ".+": Range("A" & i) = .Replace(t, "$& киви") End If Next End With End Sub