从固定电话号码中分离我们的手机号码?

时间:2015-09-08 14:55:08

标签: excel validation phone-number

有没有办法可以查看美国号码是手机还是固定电话? 我在网上找到了几个网站,但是每个网站都有付费。我可以使用代码进行检查吗?

由于

2 个答案:

答案 0 :(得分:0)

这不是一个Excel问题,更多是关于电话号码的一般性问题。如果有一些方法(我不知道一个)你可以自由地检查一些注册表的电话号码,那么我们可以使用一些代码在Excel中执行此操作 - 当然。但是,我不确定如何检查线路是移动还是固定线路。

我确实找到了this SO个帖子,但看起来免费选项有限。我确实发现this site只是谷歌搜索,但我不知道如何检查这是否准确。还有this site也会收费,但可以帮到你。

同样,如果你(或某人)确实找到了检查电话号码的方法,你可以用VB自动化它,但是到那一点是很棘手的部分。

(注意:我上面链接的网页我刚发现谷歌搜索)。

答案 1 :(得分:0)

我使用免费服务phonevalidator.com以无可比拟的方式处理你所要求的事情。我无法证明这项服务的准确性,但我尝试了几个我知道的细胞数和几个固定电话,这对他们来说是准确的。

此选项使用VBA转到网站,自动输入号码,并从结果页面中删除电话类型。我已经将抓取功能(可能可以更好地优化,但它可以工作)。

在标准代码模块中,从此函数开始:

Public Function GetPhoneNumType(phoneNum As String) As String
        Dim ie As Object
        Dim objResult As Object

        'Initialize IE
        Set ie = CreateObject("InternetExplorer.Application")

        'Go to the phone validator
        ie.Navigate "http://www.phonevalidator.com/index.aspx"

        'Wait for the page to load
        Do While ie.ReadyState <> 4
                DoEvents
        Loop

        'Enter the phone number
        ie.document.getElementByID("ContentPlaceHolder1_txtPhone").Value = phoneNum

        'Click the search button
        ie.document.getElementByID("ContentPlaceHolder1_SearchButton").Click

       'Wait until javascript executes and displays the PhoneTypeLabel
       On Error Resume Next
       Do Until Not objResult Is Nothing
                Set objResult = ie.document.getElementByID("ContentPlaceHolder1_PhoneTypeLabel")
       Loop
       On Error GoTo 0

       'Return the phone type result, either LANDLINE or CELL PHONE
        GetPhoneNumType = objResult.innerText
End Function

这会将phoneNum作为字符串,并将结果返回为LANDLINECELL PHONE(我不确定是否还有其他返回类型)。< / p>

出于这个例子的目的,我们假设我在单元格A1和A2中输入了两个电话号码(这些号码可以带或不带短划线,但不应该有其他符号,也没有前导1等),我可以像这样调用这个函数:

Public Sub TestPhoneNum()
        Dim rngNumbers As Range, c As Range

        Set rngNumbers = Sheets("Sheet1").Range("A1:A2")

        For Each c In rngNumbers
                c.Offset(0, 1).Value = GetPhoneNumType(c.Value)
        Next c

        MsgBox "Complete!"
End Sub

这会将电话号码类型放在包含电话号码的每个小区的相邻(右侧)列中。您可以将A1:A2调整为电话号码的任何范围。无论您输入哪个范围,此子例程都将始终将电话号码类型放在右侧相邻的单元格中。

我添加了消息框,因为此代码很慢,并且在代码执行完毕时通知我。

希望这至少让你开始。