【问题标题】:Vba macro runs on home computer and gets error 2147417848 on work computerVba 宏在家用电脑上运行,在工作电脑上出现错误 2147417848
【发布时间】:2019-03-20 09:19:25
【问题描述】:

在论坛的帮助下,我创建了一个连接到我银行网络的宏,填写用户名和密码并输入我的帐户。该宏复制帐户余额并将其粘贴到 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

【问题讨论】:

    标签: excel vba web-scraping runtime-error


    【解决方案1】:

    调试代码,当错误发生时,检查IE.hwnd是否返回任何值。如果您的 IE 的安全设置没有问题,afaik IE 在导航到不同安全区域的网站(例如从本地 Intranet 到 Internet)时会打开一个新浏览器。尝试为这两者启用保护模式,或/和设置相同的安全级别。

    /e:如果以下 cmets 中提到的设置没有任何区别,请创建一个以中等完整性级别运行的 Internet Explorer 实例:Set IE = New InternetExplorerMedium

    【讨论】:

    • 我要给出的答案相同。 +1。您还应该能够通过您的 vba 来检查安全设置
    • 对不起,我的知识不够。你能给我一步一步的指导来做你要求的吗?
    • @germangp 你不明白哪一部分?出错时,调试代码并在即时窗口中键入“?IE.hwnd”以查看它是否返回任何值。如果没有,就是浏览器的安全设置有问题
    • 感谢您的耐心等待,我对vba知之甚少。一旦我给出了错误,我在即时窗口中写了“?IE.hwnd”。将打开一个窗口,显示错误 462,服务器计算机不存在或不可用。
    • 是的,这是一个好兆头 - 它只是确认您的浏览器的安全设置存在问题。您是否尝试在“安全”选项卡中的“Internet”和“本地 Intranet”区域中检查“启用保护模式”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2011-01-19
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多