我有大量的数据集 - 带有电话号码的10 000条记录:
Phone_N
5656666666
6676767677
6767677777
5555555555
5555567888
6666777777
我需要格式化它:
Phone_N
(565) 666-6666
(222) 767-3333
(676) 777-7777
等...
我的数据已经没有空格,“ - ”,“/”或任何其他字符。
只需要以适当的手机格式进行格式化。
如果你能指出正确的方向,那将是非常有帮助的。
答案 0 :(得分: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 :(得分:1)
无需使用VBA,只需尝试使用Notepad ++,以列模式编辑数据。
答案 2 :(得分:1)
您可以使用UDF(用户定义的功能)
将下面的代码粘贴在VBE的标准模块中( Visual Basic编辑器) ALT + F11 右键单击Project Explorer窗口中的任意位置»插入»模块
格式化后使用ADO更新表格
Function FORMAT_NUMBERS(r As Range)
FORMAT_NUMBERS = "(" & Left(r, 3) & ") " & Right(Left(r, 6), 3) & "-" & Right(r, 4)
End Function
例如
答案 3 :(得分: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