Страницы: Пред. 1 2
RSS
Номера телефонов привести к единому формату
 
Тёзка, ты не прав. В магазине платить надо.  :)
 
Цитата
Андрей VG написал:
RUSBelorus , зашёл на форум как в магазин...
Дык! Ёлы-палы! :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
RAN написал:
Тёзка, ты не прав. В магазине платить надо.  
 8) :excl:  
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Паразитируя на коде Михаил Лебедева:
Код
Sub ОдинФормат()
    Dim r As Range
    Dim rng As Range
    Dim NumberFormat As String
    
    Set rng = Application.InputBox("Выделите блок ячеек", "Выделите блок ячеек", , , , , , 8) 'Выбираем диапазон
    NumberFormat = InputBox("Укажите формат где 0 это цифра номера", "Желаемый формат", "+7 (000) 000-00-00") 'Указываем формат
    For Each r In rng
        r.Value = ТолькоЦифры(r.Value, NumberFormat)
    Next
End Sub

Function ТолькоЦифры(ByVal строка As String, формат As String) As String
    Dim i As Integer
    Dim цифры As String
    Dim цифра As String
    
    If Len(строка) >= 1 Then
        For i = 1 To Len(строка)
           цифра = Mid(строка, i, 1)
            If IsNumeric(цифра) Then
               цифры = цифры & цифра
             End If
        Next
        цифры = Right(цифры, 10)
        ТолькоЦифры = Application.WorksheetFunction.Text(цифры, формат)
    End If
End Function

Изменено: Polkilo - 16.01.2020 09:24:32
 
Цитата
RAN написал:
В магазине платить надо.
Точно? А как же Google Play Market, Microsoft Store и т. д.? Там нет бесплатных программ? Вот и оппонент считает, что этот форум - это как бы PLEX Market с возможностью индивидуального заказа :D
 
Андрей VG, Тут как посмотреть, мне, к примеру, проще хранить одну универсальную процедуру, чем плодить под каждый желаемый формат.
Так что для форума такое решение может быть полезным.
 
Цитата
Андрей VG написал:
...Вот и оппонент считает, что этот форум - это как бы PLEX Market с возможностью индивидуального заказа...
Ну, так оно и есть, частенько :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
День добрый,
не хочется получить желаемое и слиться.
Всем огромное спасибо за помощь.
Изменено: RUSBelorus - 16.01.2020 10:29:56
 
Polkilo, чуть пошустрее функция для получения форматированного номера
Код
Public Function FormattedPhone(ByVal fromText, Optional ByVal PhoneFormat As String = "+7(000)-000-00-00") As Variant
    Static pReg As Object
    Dim i As Long, vLength As Long, digitOnly As String
    If pReg Is Nothing Then
        Set pReg = CreateObject("VBScript.RegExp")
        pReg.Global = True: pReg.Pattern = "\D"
    End If
    digitOnly = pReg.Replace(fromText, "")
    vLength = Len(digitOnly)
    If vLength > 9 Then
        FormattedPhone = Format$(CDbl(Mid$(digitOnly, vLength - 9, 10)), PhoneFormat)
    Else
        FormattedPhone = CVErr(xlErrValue)
    End If
End Function
 
Андрей VG, благодарю, до регулярок пока не добрался, слишком редко возникает необходимость работы с текстом. Покурю на досуге)
Страницы: Пред. 1 2
Наверх