吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2392|回复: 17
收起左侧

[其他转载] Excel获取手机归属地自定义VB方法

   关闭 [复制链接]
无象心 发表于 2022-9-8 15:36
Excel获取手机归属地自定义VB方法
https://www.52pojie.cn/thread-1228207-1-1.html
之前发的对json处理有问题,没区分32位、64位excel,老帖子已经不能编辑新发一个说明

[Visual Basic] 纯文本查看 复制代码
Public Function GetMobileLocation(pohoenumber As String)
    
    Dim Url As String
    
    Url = "http://cx.shouji.360.cn/phonearea.php?number=" + pohoenumber
    
    If pohoenumber <> "" Then
       
        Dim xml_http As Object

        Set xml_http = CreateObject("Microsoft.XMLHTTP")

        xml_http.Open "get", Url, True

        xml_http.sEnd

        Do Until xml_http.ReadyState = 4

            DoEvents

        Loop
        
        Dim bodyData
        
        bodyData = xml_http.responseText
           
        Dim lastData
        
        lastData = Replace(bodyData, "data", "objectdata")

        ' Set Json = CreateObject("MSScriptControl.ScriptControl"): Json.Language = "JScript" '用于32位Excel
        
        Set Json = CreateObjectx86("MSScriptControl.ScriptControl"): Json.Language = "JScript" '用于64位Excel
        
        Set Obj = Json.eval("eval(" & lastData & ")")
        
        GetMobileLocation = Array(Obj.objectdata.province, Obj.objectdata.city, Obj.objectdata.sp)
        
        ' GetMobileLocation = Obj.objectdata.province
        
        Set xml_http = Nothing

    Else
        GetMobileLocation = Array("--", "--")
    
    End If
    
End Function

Function CreateObjectx86(Optional sProgID, Optional bClose = False)
    Static oWnd As Object
    Dim bRunning As Boolean
    #If Win64 Then
        bRunning = InStr(TypeName(oWnd), "HTMLWindow") > 0
        If bClose Then
            If bRunning Then oWnd.Close
            Exit Function
        End If
        If Not bRunning Then
            Set oWnd = CreateWindow()
            oWnd.execScript "Function CreateObjectx86(sProgID): Set CreateObjectx86 = CreateObject(sProgID): End Function", "VBScript"
        End If
        Set CreateObjectx86 = oWnd.CreateObjectx86(sProgID)
    #Else
        Set CreateObjectx86 = CreateObject("MSScriptControl.ScriptControl")
    #End If
End Function


Function CreateWindow()
    Dim sSignature, oShellWnd, oProc
    On Error Resume Next
    sSignature = Left(CreateObject("Scriptlet.TypeLib").GUID, 38)
    CreateObject("WScript.Shell").Run "%systemroot%\syswow64\mshta.exe about:""about:<head><script>moveTo(-32000,-32000);document.title='x86Host'</script><hta:application showintaskbar=no /><object id='shell' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object><script>shell.putproperty('" & sSignature & "',document.parentWindow);</script></head>""", 0, False
    Do
        For Each oShellWnd In CreateObject("Shell.Application").Windows
            Set CreateWindow = oShellWnd.GetProperty(sSignature)
            If Err.Number = 0 Then Exit Function
            Err.Clear
        Next
    Loop
End Function





获取手机归属地1.zip (56.13 KB, 下载次数: 187)



免费评分

参与人数 2吾爱币 +7 热心值 +2 收起 理由
myselfcan + 1 用心讨论,共获提升!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

孤狼微博 发表于 2022-9-9 12:07
白洁 发表于 2022-9-9 09:19
CD1E-A8AD-8A1C-9721-4DA4
http://www.cjhf.net/  
麻烦请给一个注册码,谢谢。

0180-2664-797D-3304-A6C8
白洁 发表于 2022-9-9 09:19

CD1E-A8AD-8A1C-9721-4DA4
http://www.cjhf.net/  
麻烦请给一个注册码,谢谢。
孤狼微博 发表于 2022-9-8 18:41
likaiaixuexi 发表于 2022-9-8 19:20
这个好用了,是办公的好帮手
01z8z0 发表于 2022-9-8 19:51

感谢分享
xiaoc255 发表于 2022-9-8 20:17
感谢分享
nanhai31 发表于 2022-9-8 21:15
感谢分享
CXC303 发表于 2022-9-8 21:36
感谢分享
acfz 发表于 2022-9-8 21:43
好用了 感谢楼主
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表