Из программы выгружались номера телефонов в виде 8-111-111-1111 или в одной ячейке было два номера 8-111-111-1111, 8-111-111-1111 и под этот формат телефона всё было настроено
Но теперь телефоны стали выгружаться ещё в одном формате
+71111111111
Нужно чтобы все телефоны переводились в вид 8-111-111-1111 или в одной ячейке было два номера 8-111-111-1111, 8-111-111-1111 Просто через замену формата не работает.
Из программы выгружались номера телефонов в виде 8-111-111-1111 или в одной ячейке было два номера 8-111-111-1111, 8-111-111-1111 и под этот формат телефона всё было настроено
Но теперь телефоны стали выгружаться ещё в одном формате
+71111111111
Нужно чтобы все телефоны переводились в вид 8-111-111-1111 или в одной ячейке было два номера 8-111-111-1111, 8-111-111-1111 Просто через замену формата не работает.Exit007
Обработка через ВПР пары Телефон-примечание Теперь ВПР не обрабатывает телефоны формата +788888888888
Как было раньше. По результатам разговора по телефону вносилось примечание, и при следующей выборке, через ВПР я видел эти примечания и больше не звонил или наоборот звонил, в зависимости от того что было в примечании.
Обработка через ВПР пары Телефон-примечание Теперь ВПР не обрабатывает телефоны формата +788888888888
Как было раньше. По результатам разговора по телефону вносилось примечание, и при следующей выборке, через ВПР я видел эти примечания и больше не звонил или наоборот звонил, в зависимости от того что было в примечании.Exit007
Сообщение отредактировал Exit007 - Четверг, 11.09.2014, 14:45
Я сделал просто замену и у меня номера приняли такой вид 8-111-111-1111, вот я и подумал что у вас стоит формат ячеек Единственное они прижались к праву, но и это не проблема, выделил и прижал с лева
Я сделал просто замену и у меня номера приняли такой вид 8-111-111-1111, вот я и подумал что у вас стоит формат ячеек Единственное они прижались к праву, но и это не проблема, выделил и прижал с леваtelevnoy
О-па! 0_o
Сообщение отредактировал televnoy - Четверг, 11.09.2014, 14:42
Я сделал просто замену и у меня номера приняли такой вид 8-111-111-1111, вот я и подумал что у вас стоит формат ячеек Единственное они прижались к праву, но и это не проблема, выделил и прижал с лева
Это всё не проблема, визуально телефоны теперь выглядят 8-111-111-1111, но по факту они 81111111111
Я сделал просто замену и у меня номера приняли такой вид 8-111-111-1111, вот я и подумал что у вас стоит формат ячеек Единственное они прижались к праву, но и это не проблема, выделил и прижал с лева
Это всё не проблема, визуально телефоны теперь выглядят 8-111-111-1111, но по факту они 81111111111 Exit007
Сообщение отредактировал Exit007 - Четверг, 11.09.2014, 14:52
Sub t() For Each c In ActiveSheet.[a:a].Cells If c.Text Like "+7##########" Then c.Value = "8-" & Mid(c.Text, 3, 3) & "-" & Mid(c.Text, 6, 3) & "-" & Right(c.Text, 4) Next End Sub
[/vba]
[vba]
Код
Sub t() For Each c In ActiveSheet.[a:a].Cells If c.Text Like "+7##########" Then c.Value = "8-" & Mid(c.Text, 3, 3) & "-" & Mid(c.Text, 6, 3) & "-" & Right(c.Text, 4) Next End Sub
Sub t() For Each c In ActiveSheet.[a:a].Cells If c.Text Like "+7##########" Then c.Value = "8-" & Mid(c.Text, 3, 3) & "-" & Mid(c.Text, 6, 3) & "-" & Right(c.Text, 4) Next End Sub
Ура, ура, всё заработало !!! СПАСИБО ОГРОМНОЕ !!!!!
Sub t() For Each c In ActiveSheet.[a:a].Cells If c.Text Like "+7##########" Then c.Value = "8-" & Mid(c.Text, 3, 3) & "-" & Mid(c.Text, 6, 3) & "-" & Right(c.Text, 4) Next End Sub
Ура, ура, всё заработало !!! СПАСИБО ОГРОМНОЕ !!!!!Exit007
Function phone(str) As String Dim oRegExp As Object, oRes As Object, r, sText As String
Set oRegExp = CreateObject("VBScript.RegExp") oRegExp.Pattern = "(\+7)(\d{3})(\d{3})(\d{4})" Set oRes = oRegExp.Execute(str)
If oRes.Count > 0 Then For Each r In oRes sText = sText & ", 8-" & r.submatches(1) & "-" & r.submatches(2) & "-" & r.submatches(3) Next phone = Mid(sText, 3, Len(sText) - 2) Else phone = str End If
End Function
[/vba]
ну и я свои 5коп внесу: [vba]
Код
Function phone(str) As String Dim oRegExp As Object, oRes As Object, r, sText As String
Set oRegExp = CreateObject("VBScript.RegExp") oRegExp.Pattern = "(\+7)(\d{3})(\d{3})(\d{4})" Set oRes = oRegExp.Execute(str)
If oRes.Count > 0 Then For Each r In oRes sText = sText & ", 8-" & r.submatches(1) & "-" & r.submatches(2) & "-" & r.submatches(3) Next phone = Mid(sText, 3, Len(sText) - 2) Else phone = str End If
Сергей, вариант с регулярками можно записать покороче ;)[vba]
Код
Sub f() Dim r As Object: Set r = CreateObject("vbscript.regexp") r.Pattern = "(?:\+7)(\d{3})(\d{3})(\d{4})": r.Global = True For Each c In ActiveSheet.[a2:a22].Cells: c.Value = r.Replace(c.Text, "8-$1-$2-$3"): Next End Sub
[/vba]и, кстати, данный код будет работать и для случаев, если в ячейке более одного "телефона" вида +71234567890
Сергей, вариант с регулярками можно записать покороче ;)[vba]
Код
Sub f() Dim r As Object: Set r = CreateObject("vbscript.regexp") r.Pattern = "(?:\+7)(\d{3})(\d{3})(\d{4})": r.Global = True For Each c In ActiveSheet.[a2:a22].Cells: c.Value = r.Replace(c.Text, "8-$1-$2-$3"): Next End Sub
[/vba]и, кстати, данный код будет работать и для случаев, если в ячейке более одного "телефона" вида +71234567890ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki