Макрос VBA работает на домашнем компьютере и получает ошибку 2147417848 на рабочем компьютере - PullRequest
2 голосов
/ 20 марта 2019

С помощью форума я создал макрос, который подключается к сети моего банка, введите имя пользователя и пароль и войдите в свою учетную запись.Макрос копирует баланс счета и вставляет его в 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

1 Ответ

1 голос
/ 20 марта 2019

Отладка кода и, когда происходит ошибка, проверьте, возвращает ли IE.hwnd какое-либо значение. Если это не так, то есть проблема с настройками безопасности вашего IE, afaik IE открывает новый браузер, когда он переходит на веб-сайт, который находится в другой зоне безопасности (например, из локальной интрасети в Интернет). Попробуйте включить защищенный режим для них обоих и / или установить одинаковый уровень безопасности.

/ e: Если ни один из параметров, упомянутых в комментариях ниже, не имеет никакого значения, создайте экземпляр Internet Explorer, работающий со средним уровнем целостности: Set IE = New InternetExplorerMedium

...