在论坛的帮助下,我创建了一个连接到我的银行网站的宏,填写用户名和密码并输入我的帐户。宏将复制帐户余额并将其粘贴到Excel中。
在我的家用电脑上,它没有问题。但是,工作计算机不起作用。在我的工作场所,宏打开网络但不填写用户或密码。它停在While. Busy Or.readyState <4
线上,错误Runtime Error 2147417848
出来了。
我将“activobank.com”添加到Explorer的可信站点,然后出现错误。
我检查了Explorer> Tools> Internet Options> Connections> LAN settings> Detect settings selected
,它被选中了。我的工作场所不运行代理脚本。
如果我在不使用宏的情况下在Internet Explorer中手动输入并且我输入了用户和密码,我可以毫无问题地输入。
宏可以在家用计算机上工作而不是在我的工作计算机上工作有什么问题?
'VBE > Tools > References:
' Microsoft Internet Controls
Public Sub SaldoActivo()
Dim IE As InternetExplorer
Set IE = New InternetExplorer
With IE
.Visible = True
‘Navigate first web
.Navigate2 "https://www.activobank.com/cs/Satellite/BC/"
While .Busy Or .readyState < 4: DoEvents: Wend
.document.querySelector("[name=userDNI]").Value = "123456789"
.document.querySelector("[name=pinNif]").Value = "123456789"
.document.querySelector("#button1").Click
While .Busy Or .readyState < 4: DoEvents: Wend
' Navigate second page
.Navigate2 "https://www.activobank.com/activobank/CUGlobalPositionNew.init.bs"
While .Busy Or .readyState < 4: DoEvents: Wend
End With
‘Code to copy the account balance data
Application.Wait (Now + TimeValue("00:00:04"))
Cells(1, 1) = IE.document.getElementsByTagName("td")(39).innerText
IE.Quit
Set IE = Nothing
End Sub
调试代码,当错误发生时,检查IE.hwnd
是否返回任何值。如果不存在IE安全设置的问题,那么当IE导航到位于不同安全区域的网站(例如从本地Intranet到Internet)时,IE会打开一个新浏览器。尝试为这两者启用保护模式,或/并设置相同的安全级别。
/ e:如果以下评论中提到的任何设置都没有任何区别,请创建一个以中等完整性级别运行的Internet Explorer实例:Set IE = New InternetExplorerMedium