Format phone number

I'm trying to use some code to format a phone number column and fax number column that contain both US numbers and international numbers.

Here is what I'm trying:

Function cleanPhoneNumber(thisNumber As String) As String
    ' this function aspires to clean any phone number format
    ' to standard format (+9999) 999-999-9999 or 999-999-9999
    ' works with almost all phone number formats stored in text

Dim retNumber As String

For i = 1 To Len(thisNumber)
    If Asc(Mid(thisNumber, i, 1)) >= Asc("0") And Asc(Mid(thisNumber, i, 1)) <= Asc("9") Then
        retNumber = retNumber + Mid(thisNumber, i, 1)
    End If
Next
If Len(retNumber) > 10 Then
    ' format for country code as well
    cleanPhoneNumber = Format(retNumber, "(+#) (000) 000-0000")
Else
    cleanPhoneNumber = Format(retNumber, "(+1) (000) 000-0000")
End If
End Function

Open in new window


The function doesn't even show up when I click on macro to run it?  

Any help is appreciated.
Thanks.
-Dman100-Asked:
Who is Participating?
 
Glenn RayConnect With a Mentor Excel VBA DeveloperCommented:
This macro is a user-defined function, so it won't run like a regular macro subroutine.

Instead, in Excel, you'd enter this function as any other Excel function, like so:
=cleanPhoneNumber("17133456789")

The result would look like:
(+1) (713) 345-6789

You can also enter a cell reference in between the parenthesis:
=cleanPhoneNumber(B2)


Regards,
-Glenn
0
All Courses

From novice to tech pro — start learning today.