|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
实际上用你的方法把几个js文本读出来,再用eval解析,更为简单.
12,13,14三行其中一个功能就有7/8/9的作用:把三个js文件下载到临时目录中,所以不要7/8/9也可运行. 但12/13/14运行工作有时还没有结束,vba就开始执行后续代码从而会出错. 这里7/8/9行作用是保证js下载完成.当然如果你已经执行过一次该代码或事先用浏览器打开过该网页,那么js文件已经在临时目录中,也可不要7/8/9三行.
用文档对象的父窗口对象执行javascript代码的优点是,它在64位的Excel中也能正常运行.
优化后代码:
- Sub test()
- Dim oHttp As Object
- Set oHttp = CreateObject("MSXML2.XMLHTTP")
- resText = httpRequest(oHttp, "http://www.lzfc.com.cn:8080/LFGIS/servlet/QueryBuild?BaseCode=6E85E23B_F775_E551_FCFA_AF6F8F530B2F")
- buildingCode = Split(Split(resText, "onclick=comInfoView('")(1), "'")(0)
- resText = httpRequest(oHttp, "http://www.lzfc.com.cn:8080/LFGIS/Loupanbiao/LoupanbiaoJs/rsa/RSA.js")
- resText = resText & httpRequest(oHttp, "http://www.lzfc.com.cn:8080/LFGIS/Loupanbiao/LoupanbiaoJs/rsa/BigInt.js")
- resText = resText & httpRequest(oHttp, "http://www.lzfc.com.cn:8080/LFGIS/Loupanbiao/LoupanbiaoJs/rsa/Barrett.js")
- Set oDom = CreateObject("htmlfile")
- Set oWin = oDom.parentWindow
- oWin.execScript
- buildingCode = oWin.eval(resText & "encryptedString(bodyRSA(), encodeURIComponent('" & buildingCode & "'))")
- URL = "http://www.lzfc.com.cn:8080/LFGIS/buildingTb/buildingInfoShow.action?buildingCode=" & buildingCode
- MsgBox URL
- End Sub
- Function httpRequest(o As Object, sURL As String) As String
- o.Open "GET", sURL, False
- o.Send
- httpRequest = o.responseText
- End Function
复制代码 |
评分
-
1
查看全部评分
-
|