在论坛的帮助下,我创建了一个连接到银行网络的宏,填写用户名和密码并输入我的帐户。宏将帐户余额复制并粘贴到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的安全设置存在问题,则AFAIK IE将在导航到不同安全区域的网站(例如,从本地Intranet到Internet)打开一个新的浏览器。尝试为这两种模式启用受保护模式,并设置相同的安全级别。
/e:如果下面的评论中提到的任何设置都没有任何区别,请创建一个以中等完整性级别运行的Internet Explorer的实例:Set IE = New InternetExplorerMedium