有没有办法可以查看美国号码是手机还是固定电话? 我在网上找到了几个网站,但是每个网站都有付费。我可以使用代码进行检查吗?
由于
答案 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
作为字符串,并将结果返回为LANDLINE
或CELL 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
调整为电话号码的任何范围。无论您输入哪个范围,此子例程都将始终将电话号码类型放在右侧相邻的单元格中。
我添加了消息框,因为此代码很慢,并且在代码执行完毕时通知我。
希望这至少让你开始。