Sub ikki()
Set r = CreateObject("vbscript.regexp")
r.ignorecase = True
r.Pattern = "([a-zа-яё][-a-zа-яё\s]*)([0-9]+)([-a-zа-яё\s]*)?"
For Each c In Intersect([a1].CurrentRegion, Columns(1)).Cells
Set m = r.Execute(c.Value)
If m.Count Then
For i = 0 To 2: c.Offset(, i + 1).Value = m(0).submatches(i): Next
End If
Next
End Sub
Федор, Есть столбец в ячейки которого внесены марки+модели техники, чаще всего через пробел, местами через дефис. При этом попадаются точки, запятые, косые(при том разные "/" и "\") и другие знаки не относящиеся к цифрам и буквам. Марка техники, в 99,9% случаев, это слово или буква(такое тоже бывает) или сочетание слов(опять же, как правило двух), а далее идет циферно-буквенное или буквенно-циферное обозначение модели. И вот тут то часто встречается когда буквы с цифрами написаны без разделителей. Пример того что я хочу я добавил в файле что размещал ранее. Посмотрите пожалуйста.
У меня как-то так получилось. Если есть еще какие-то неучтенные разделители, просто добавьте их в строку "[/\.,-]"
Код
Function NN(Name As String) As String
Dim Names
Dim isDig As Boolean, aName, tName, ResName As String
Names = Split(Name)
For Each aN In Names
If Left(aN, 1) Like "[0123456789]" Then isDig = True
aName = ""
For I = 1 To Len(aN)
tName = Mid(aN, I, 1)
If tName Like "[/\.,-]" Then tName = " "
If isDig Xor (Not tName Like "[0123456789]") Then
tName = " " & tName
isDig = Not isDig
End If
aName = aName & tName
Next I
ResName = ResName & " " & aName
Next aN
NN = Application.WorksheetFunction.Trim(ResName)
End Function