Страницы: 1 2 След.
RSS
Преобразовать список номеров телефонов в вид 79999999999
 
В оригинальном файле будет много столбцов, в примере всего 2.
Нужно перевести в единый вид 79999999999. На всем листе.
Заранее благодарю за помощь!
Изменено: burov_oleg - 23.06.2020 20:38:31
 
а вот такой номер во что преобразовать? 89858565826/89032942983
 
Настя_Nastya, такой номер просто можно оставить, я думаю, нереально сделать так, чтобы его в две ячейки через макрос разбить
 
Цитата
burov_oleg написал:
нереально
ну, почему, можно в конец таблицы в доп столбец перенести...
 
Настя_Nastya, это не так важно как все остальное (
 
burov_oleg, а что делать с результатами 8905799439 или 899965416970? Дописывать цифру наугад? Или убирать лишнюю по своему усмотрению?
 
aequit, можно просто оставить первый.
 
Код
Sub hhh()
Dim a As Range
Dim b As Range

Set a = Selection
    For Each b In a
        With b
            b.Value = "'" + b.Text
            .Replace what:="/", replacement:=""
            .Replace what:="\", replacement:=""
            .Replace what:=")", replacement:=""
            .Replace what:="(", replacement:=""
            .Replace what:="+", replacement:=""
            .Replace what:=" ", replacement:=""
            .Replace what:="-", replacement:=""
            .Value = "7" + Right(.Text, 10)
            .NumberFormat = "@"
        End With
    Next
End Sub

выделяете нужный диапазон с данными и запускаете макрос
Изменено: Настя_Nastya - 12.03.2020 15:12:06
 
Вариант лютого колхоза через PQ.
 
Настя_Nastya,Огромное спасибо! Все работает!

Тема закрыта, всем спасибо!
 
Добрый вечер!
Анастасия очень сильно помогла мне.
Использую ее макрос, все прекрасно работает, но тут появился вопрос, а как быть с городскими номерами?
Вот если есть "3485259", а нужно "4993485259"
Прикладываю файл, с макросом Анастасии.
Может кто помочь доработать, чтобы можно было добавлять в макрос например "3595952" - тогда "4953595952"
То есть под каждые первые 3 цифры свой код города. Спасибо!
 
burov_oleg,
Замените в коде
Код
.Value = "7" + Right(.Text, 10)

На
Код
.Value = "нужное вам" + Right(.Text, 10)
 
А если нужно и то и то, как тут быть?
И еще, если "84993525958" оставить только "4993525958"?

И еще условие, что для "320" - нужно "495"
а для "348" - нужно "499" и так разные значения
 
Цитата
свой код города
Это всегда 499 ?
 
Вот как раз и нет (
В этом-то и беда, нужно и прошлый код оставить и одновременно с этим же кодом добавить чтобы к разным первым цифрам, притягивалось либо "499", либо "495".

Kuzmich, спасибо Вам за прошлый макрос, его Андрей доработал и стало просто красота, очень спасает!
 
Цитата
притягивалось либо "499", либо "495".
Какой критерий?
 
Коды 495 и 499 относятся к Москве. Первоначально телефоны Москвы имели код города 095, затем 495. При разделении на 499 перешли, примерно,  номера телефонов в районах севернее Москвы-реки. Сейчас определение первых 3 цифр по последним 7 цифрам не представляется возможным.
Владимир
 
Владимир, все верно ( поэтому методом тыка. Но список уже есть, по первым 3-м цифрам определяем.

Цитата
Kuzmich написал: Какой критерий?
"320" - "495"
"348" - "499"
"356" - "499"
"357" - "499"
Вы можете прописать допустим только эти 4, а я уже смогу копировать в коде и вставлять уже другие значения, чтобы Вам не заморачиваться.
Мне непонятно как сам код построить, чтобы прошлый тоже работал.

И вот ситуация с "84993562559" чтобы было "4993562559"
 
А номер 905799439 как преобразовывать?
Часть ячеек имеет числовой формат с разделителем группы разрядов. Зачем?
Номер 3492928 какой будет код?
 
Цитата
Kuzmich написал:
905799439 как преобразовывать
А вот как раз макрос там есть, добавляет 7 к мобильными номерам, и заменяет если с 8 началось.
В примере как раз у меня.

А вот с "3492928" нужен код "495"
 
Цитата
burov_oleg написал:
А вот как раз макрос там есть, добавляет 7 к мобильными номерам
а с чего вы решили, что это мобильный номер? Или вы думаете что Kuzmich от нечего делать вопросы задаёт? Там 9 цифр, а в мобильном должно быть 10.
 
Цитата
Андрей VG написал:
а с чего вы решили, что это мобильный номер?
Да, действительно, извиняюсь, не внимательно посмотрел.
Тогда "499"
Ну тут моментов может быть много, поэтому я и спрашивал, чтобы можно было редактировать и добавлять к разным вариантам исходы.
Спасибо за внимательность!
 
Цитата
Kuzmich написал:
Часть ячеек имеет числовой формат с разделителем группы разрядов. Зачем?
Видимо так получилось при копировании.
В основном файле, я буду приводить в числовой формат и после применять макрос, если такой будет иметься...
 
Цитата
Да, действительно, извиняюсь, не внимательно посмотрел.
Тогда "499"
Что делать с 9-ти значным номером?
 
Цитата
Kuzmich написал:
Что делать с 9-ти значным номером?
Это ошибка, их нужно удалить, по возможности
 
Цитата
burov_oleg написал:
Ну тут моментов может быть много, поэтому я и спрашивал
Вы эти моменты должны найти и определить, что с ними делать. Это ваши данные, только вы в курске - что с ними делать. Предлагаю - 9 значные выгружать на отдельный лист и отправлять поставщику данных с удержанием зарплаты в фонд форума :)
Изменено: Андрей VG - 24.06.2020 17:56:31
 
Цитата
Андрей VG написал:
поставщику данных
С удовольствием бы... только поставщик и заказчик и исполнитель все в одном лице я ((( а возможностей таких не имею (
Так вообще идея хорошая, я в следующий раз обязательно задумаюсь над этим!
 
с 9-ти значным номером решайте сами
Попробуйте такой код с выделенным диапазоном
Код
Sub iPhone()
 Dim re As Object
 Dim tempPhone As String
 Dim arr
 Dim cell As Range
 Dim RgxPhone As String
  Set arr = Selection
  Selection.Interior.ColorIndex = xlNone
  For Each cell In arr
    Set re = CreateObject("vbscript.regexp")
    re.Pattern = "(-|\s|\+|\(|\))"
    re.Global = True
    re.IgnoreCase = True
    tempPhone = re.Replace(cell, "")
    re.Pattern = "(8|7)+(\d{3})+(\d{7})"
    RgxPhone = re.Replace(tempPhone, "$2$3")
    If Len(RgxPhone) > 10 Then
     cell.Interior.ColorIndex = 6:
    Else
      If Len(RgxPhone) = 10 Then
        cell = "7" & RgxPhone
      Else
        If Len(RgxPhone) = 7 Then
          Select Case Left(RgxPhone, 3)
          Case "320", "349"
            cell = "495" & RgxPhone
          Case "348", "356", "357"
            cell = "499" & RgxPhone
           End Select
        End If
      End If
    End If
  Next
End Sub

Ячейки с неправильными номерами подсвечены
 
Цитата
Kuzmich написал:
Попробуйте
Почему-то  к 499356 цепляется "7" и получается "7499356".
 
Ещё вариант
Скрытый текст
Страницы: 1 2 След.
Наверх