Подскажите, как можно все ячейки, содержащие слово «ткань», перенести с удалением из столбца В в столбец С?
			
			
			
				Нужно учитывать, что искомое слово может быть частью более длинного другого слова.
Например, "око" является частью "молоко".
Значит нужно не просто искать, а искать слово целиком.
Excel так не умеет искать, нужно делать дополнительные действия.
			
			
			
				Ситуацию с "око" можно исключить. Это точно.
			
			
			
				1. Вверху модуля вставьте эти строки:
Option Explicit
Option Compare Text
Option Base 1
2. Макрос предполагает, что данные начинаются со строки 2 (т.е. строка 1 это шапка).
Макрос
Sub Макрос()
    
    Dim src(), res()
    Dim lr As Long, i As Long
    
    
    '1. Сбрасываем автофильтр, если он есть, иначе макрос не сможет вставить данные из массива.
    If ActiveSheet.AutoFilterMode = True Then
        ActiveSheet.AutoFilter.ShowAllData
    End If
    
    '2. Поиск последней строки в столбце B.
        ' End не ищет в скрытых строках.
    lr = Cells(Rows.Count, "B").End(xlUp).Row
    
    '3. Копирование данных из столбца B в массив.
        ' Данные копируются со строки 2 (подразумевается, что первая строка это шапка).
    src() = Range("B2:B" & lr).Value
    
    '4. Создание ячеек в массиве-результате.
    ReDim res(UBound(src), 1)
    
    '5. Перемещение ячеек, в которых есть слово "ткань" из массива "src" в массив "res".
    For i = 1 To UBound(src)
        ' Если в ячейке есть слово "ткань".
        If InStr(src(i, 1), "ткань") <> 0 Then
            ' Копирование данных из массива "src" в массив "res".
            res(i, 1) = src(i, 1)
            ' Очистка ячейки в массиве "src".
            src(i, 1) = Empty
        End If
    Next i
    
    '6. Вставка изменённых массивов на лист.
    Range("B2").Resize(UBound(src)).Value = src()
    Range("C2").Resize(UBound(res)).Value = res()
    
    '7. Сообщение.
    MsgBox "Готово.", vbInformation
End Sub