2013-09-26 95 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

如果你需要有人寫代碼對你來說,聘請開發之後。對不起,但我們不是免費的編碼資源。 ''此外,堆棧溢出是*不*一個論壇 - 這是一個問答網站。差距很大。'' –

+0

如果你讀[問] – 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編輯器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

謝謝!這就是我的想法 –