excel - Vba 宏在家用电脑上运行,在工作电脑上出现错误 2147417848
问题描述
在论坛的帮助下,我创建了一个连接到我银行网络的宏,填写用户名和密码并输入我的帐户。该宏复制帐户余额并将其粘贴到 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
推荐阅读
- swift - Xcode Firebase I 更新 Firebase 数据库值时出现问题
- .net - Visual Studio 2017 首次运行时未显示编译异常
- python - 如何在 Ubuntu 中找到串口?
- c++ - 接收 std::pair 作为参数并从花括号列表初始化推导出类型的模板化函数
- java - Click 在 Windows 10 for selenium 的 IE11 中不起作用
- git - 从我的全局配置中删除 git rerere
- java - 使用 REST 请求获取和更改对象列表的内容
- jsf - primefaces 轮询动态间隔
- android - 资源文件中定义的要“包含”的边距没有影响
- php - 虽然循环它只打印我 1 个值,它是最后一个