Я хочу перебирать столбец и извлекать подстроку в каждой ячейке (в моем примере «Код:»)
Я хочу перебрать каждую ячейку и запустить формулу на месте. В основном удалите все в каждой ячейке столбца, кроме кода.
Я знаю, как извлечь строку в другой столбец B, используя формулу: =MID(A2,FIND("Код:",A2,1),23)
... но я хочу сделать это в той же ячейке. Я попробовал этот код в vba, но не знаю, что я делаю неправильно:
For Each cell In Range("A:A")
cell.Value = Mid(.Value, InStr(1, .Value, "Code:"), 23)
Next
With
вне циклаfor
, возможная проблема заключается в том, что ваши ссылки.Value
идут не туда, куда вы думаете. Попробуйтеcell.Value = Mid(cell.Value, InStr(1, cell.Value, "Code:"), 23)
- person PeterT   schedule 04.03.2017Instr
вернет 0, если он не существует (и я не могу поверить, что у вас действительно есть 1048576 ячеек со строкой Code: в них), аMid
, начинающийся с позиции символа 0, завершится ошибкой. (Плюс то, что сказал PeterT!) - person YowE3K   schedule 04.03.2017