2013-09-26 2 views
-6

У меня есть большой набор данных - 10 000 записей с номерами телефонов:Форматирование номера телефонов - VBA

Phone_N 
5656666666 
6676767677 
6767677777 
5555555555 
5555567888 
6666777777 

Мне нужно форматировать нравится:

Phone_N 
(565) 666-6666 
(222) 767-3333 
(676) 777-7777 

и т.д ....

Мои данные уже не имеют пробелов, «-», «/» или любых других символов.

Его просто нужно было отформатировать в правильном формате телефона.

Было бы очень полезно, если бы вы могли указать мне правильное направление для начала.

+1

Если вам нужен кто-то, чтобы написать код для вас, нанять разработчика. Извините, но мы не являемся свободным ресурсом кодирования. '' Также, Stack Overflow - это * не * форум - это сайт вопросов и ответов. Большая разница. '' –

+0

Было бы очень полезно, если бы вы прочитали [ask] – brasofilo

+0

На самом деле вам не нужен VBA для этого. Вы можете достичь этого с помощью формулы – sam092

ответ

0

Это можно сделать в VBA. Для этого вы можете использовать следующее.

Dim rs As DAO.Recordset, TempN As String 
Set rs = CurrentDb.OpenRecordset("SELECT Phone_N FROM MyTableName", dbOpenDynaset) 

If (rs.RecordCount <> 0) Then 
    rs.MoveFirst 
    Do While rs.EOF <> True 
    TempN = rs.Fields("[Phone_N]").value 
    rs.Edit 
    rs.Fields("[Phone_N]").value = "(" & Left(TempN, 3) & ") " & _ 
            Left(Right(TempN, 7), 3) & "-" & _ 
            Right(TempN, 4) 
    rs.Update 
    rs.MoveNext 
    Loop 
End If 
+0

Танк вас, очень интересно –

1

не нужно использовать VBA, просто попробуйте Notepad ++, отредактируйте свои данные в шаблоне cloumn.

3

Вы можете использовать Format Function форматировать Phone_N, как вы хотите. Я не уверен, является ли Phone_N текстовым или числовым типом данных, но следующий пример примет вид: Format.

Phone_N = 2227673333 ' (Phone_N is numeric) 
? Format(Phone_N, "(###) ###-####") 
(222) 767-3333 
Phone_N = "2227673333" ' (Phone_N is text) 
? Format(Phone_N, "(###) ###-####") 
(222) 767-3333 
1

Вы можете использовать UDF (определенная пользователем функция)

приклеить ниже код в стандартный модуль в VBE (Visual Basic Editor) ALT + F11 право щелкните в любом месте окна Проводника проекта » Вставить » Модуль

после форматирования использовать ADO, чтобы обновить свою таблицу

Function FORMAT_NUMBERS(r As Range) 
    FORMAT_NUMBERS = "(" & Left(r, 3) & ") " & Right(Left(r, 6), 3) & "-" & Right(r, 4) 
End Function 

пример

enter image description here

+0

Спасибо! Вот что я думал –

Смежные вопросы