Импорт и преобразование из excel в access 2003

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
jen9tko
Сообщения: 4
Зарегистрирован: 16 июл 2009, 13:17

День добрый!
Столкнулся с задачей:
Есть телефонные номера, хранящиеся в файлах excel в различном виде (например, xxxxxxxxxx, (xxx)-xxxxxxx и т.д.)
могу ли я их автоматически привести при импортировании к виду по маске xxx-xxxxxxx без редактирования вручную в access или excel?
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Воспользуйтесь нижеприведённой функцией PhoneNumber, подставив в качестве аргумента исходный номер телефона.

Код: Выделить всё

Const Mask = "xxx-xxxxxxx"

Function PhoneNumber(Number As String) As String
    Dim n As Byte, prefix As Byte, Str As String
    For n = 1 To Len(Number)
        Select Case prefix
            Case Is = 0
                If Mid(Number, n, 1) = "+" Then _
                    prefix = 1
                If Len(Str) = 0 And Mid(Number, n, 1) = 8 Then
                    prefix = 2
                Else
                    Str = Str & PhN(Number, n)
                End If
            Case Is = 1
                If Mid(Number, n, 1) <> 7 Then
                    Str = Str & PhN(Number, n)
                    prefix = 2
                End If
            Case Is = 2
                Str = Str & PhN(Number, n)
        End Select
        If Len(Str) = Len(Mask) Then _
            Exit For
        If Mid(Mask, Len(Str) + 1, 1) = "-" Then _
            Str = Str & "-"
    Next n
    PhoneNumber = Str
End Function

Function PhN(Number As String, n As Byte) As String
    If Val(Mid(Number, n, 1)) > 0 Then
        PhN = Mid(Number, n, 1)
    Else
        If Mid(Number, n, 1) = 0 Then _
            PhN = 0
    End If
End Function
jen9tko
Сообщения: 4
Зарегистрирован: 16 июл 2009, 13:17

Спасибо Вам большое.
Ответить