格式化电话号码ms access

问题描述:

对不起,另一个关于MsAccess的问题。格式化电话号码ms access

我有数据集:

Phone Number 
444-514-9864 
555-722-2273 
333-553- 4535 
000-000- 0000 
550-322-6888 
444-896-5371 
322-533-1448 
222.449.2931 
222.314.5208 
222.745.6001 

我需要它看起来像(222)896-5371。 如何在Ms Access或MsExcel中执行此操作?

+0

你愿意为此使用VBA吗?有一种简单的方法可以在vba – Gutanoth

+0

中做到这一点,如果它可能在vba中做到这一点,并比使用Replace函数更容易....请解释我该如何做。谢谢! –

+0

嗯,我确实使用了替换函数(请参阅我的答案),但是也可以筛选出2个不同字符串变量(前缀和后缀)中的前3个数字和最后7个字符,然后最后执行下列操作:'Newphonenumber =“(”&前缀&“)”&后缀 – Gutanoth

您可以使用Instr ,中,左,右功能来完成这项工作。我做了1个例,与MSDN你应该能够找出休息

Dim OldPhoneNumber As String 
Dim NewPhoneNumber As String 
Dim PreFix As String 
Dim PreFix2 As String 

' You can replace this line in Access, just make sure the full phone number is stored in "OldPhoneNumber" 
OldPhoneNumber = Worksheets(<worksheet name>).Range(<cell name>).Value 


PreFix = Left(OldPhoneNumber, InStr(1, OldPhoneNumber, "-", 1)) 
PreFix2 = Left(OldPhoneNumber, InStr(1, OldPhoneNumber, "-", 1) - 1) 

NewPhoneNumber = Replace(OldPhoneNumber, PreFix, "(" & PreFix2 & ") ") 

Debug.Print (NewPhoneNumber) 

看到,因为并非所有的电话号码的格式相同的方式,你将不得不作出一个不同的规则为每一个不同格式的手机号(需要1来检查“ - ”“”和一个检查您可能还需要筛选出空间

在访问您设置的 “输入掩码” 来:“(” 000 “) ”000“ - ” 0000; 1; _

所有引用http://office.microsoft.com/en-ca/access-help/input-mask-syntax-and-examples-HP005187550.aspx

+0

不幸的是,它不起作用。即使在应用蒙版之后,+1.444.854.5100尚未更改为(444)854-5100我的字段已经有电话号码。蒙版仅适用于新输入 –

+0

也许创建一个[宏](http://office.microsoft.com/en-ca/access-help/create-a-macro-HA010030811.aspx) – MasterT

输入掩码将只对新数据的工作,你将需要创建一个宏或函数来更新您现有的数据以符合您所需的格式