Sub xxx() Dim om As Object, c As Range, i% With CreateObject("vbscript.regexp") .Pattern = "([a-zа-яё0-9 ]+)" .Global = False .IgnoreCase = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then c.Offset(, 7).Value = .Execute(c.Text).Item(0) End If Next .Pattern = "(\+?\d{10,11})" .Global = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then Set om = .Execute(c.Text) For i = 0 To om.Count - 1 c.Offset(, i + 8).NumberFormat = "@" c.Offset(, i + 8).Value = om.Item(i) Next End If Next End With End Sub
[/vba]
Долго не думая: [vba]
Code
Sub xxx() Dim om As Object, c As Range, i% With CreateObject("vbscript.regexp") .Pattern = "([a-zа-яё0-9 ]+)" .Global = False .IgnoreCase = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then c.Offset(, 7).Value = .Execute(c.Text).Item(0) End If Next .Pattern = "(\+?\d{10,11})" .Global = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then Set om = .Execute(c.Text) For i = 0 To om.Count - 1 c.Offset(, i + 8).NumberFormat = "@" c.Offset(, i + 8).Value = om.Item(i) Next End If Next End With End Sub
Прошу прощения, я не прав. Удалил предыдущий макрос, создал новый. До этого делал редактирование. И вот что получаем, фамилия, имя в общей колонке. Нужно разделить по двум столбцам, фамилия в первый и во второй - имя и двузначное число.
Прошу прощения, я не прав. Удалил предыдущий макрос, создал новый. До этого делал редактирование. И вот что получаем, фамилия, имя в общей колонке. Нужно разделить по двум столбцам, фамилия в первый и во второй - имя и двузначное число.
Его нет смысла так делить, поскольку в ячейках у Вас всякая белиберда вместо First Name Last Name. Но можно: [vba]
Code
Sub xxx() Dim om As Object, c As Range, i%, a With CreateObject("vbscript.regexp") .Pattern = "([a-zа-яё0-9 ]+)" .Global = False .IgnoreCase = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then a = Split(.Execute(c.Text).Item(0), " ", 2) c.Offset(, 2).Resize(, UBound(a) + 1).Value = a End If Next .Pattern = "(\+?\d{10,11})" .Global = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then Set om = .Execute(c.Text) For i = 0 To om.Count - 1 c.Offset(, i + 4).NumberFormat = "@" c.Offset(, i + 4).Value = om.Item(i) Next End If Next End With End Sub
[/vba]
Его нет смысла так делить, поскольку в ячейках у Вас всякая белиберда вместо First Name Last Name. Но можно: [vba]
Code
Sub xxx() Dim om As Object, c As Range, i%, a With CreateObject("vbscript.regexp") .Pattern = "([a-zа-яё0-9 ]+)" .Global = False .IgnoreCase = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then a = Split(.Execute(c.Text).Item(0), " ", 2) c.Offset(, 2).Resize(, UBound(a) + 1).Value = a End If Next .Pattern = "(\+?\d{10,11})" .Global = True For Each c In Range("a2", [a65536].End(xlUp)).Cells If .test(c.Text) Then Set om = .Execute(c.Text) For i = 0 To om.Count - 1 c.Offset(, i + 4).NumberFormat = "@" c.Offset(, i + 4).Value = om.Item(i) Next End If Next End With End Sub
Но нет сортировки по полям "First Name" "Last Name" "Mobile Phone" "Mobile Phone 2" "Mobile Phone 3" "Mobile Phone 4" а это важно. Во втором столбце Имя, с двузначным (при его наличии) числом.
Но нет сортировки по полям "First Name" "Last Name" "Mobile Phone" "Mobile Phone 2" "Mobile Phone 3" "Mobile Phone 4" а это важно. Во втором столбце Имя, с двузначным (при его наличии) числом.Jam
Jam, сортировку(любую) можете записать рекордером. Если же Вы имеете ввиду:
Quote
"отсортировать" - разместить по одному номеру в отдельный столбец (телефон 1, телефон 2, телефон 3, телефон 4) номера телефонов разделены между собой разным количеством запятых, которые в свою очередь взяты в кавычки. (особенность сортировки)
то что, мой код не разносит номера по столбцам? И слово "отсортировать" здесь совсем неуместно. Это разделение по столбцам.
Jam, сортировку(любую) можете записать рекордером. Если же Вы имеете ввиду:
Quote
"отсортировать" - разместить по одному номеру в отдельный столбец (телефон 1, телефон 2, телефон 3, телефон 4) номера телефонов разделены между собой разным количеством запятых, которые в свою очередь взяты в кавычки. (особенность сортировки)
то что, мой код не разносит номера по столбцам? И слово "отсортировать" здесь совсем неуместно. Это разделение по столбцам.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728