Длительный запрос Excel VBA теперь заставляет IE не отвечать - PullRequest
0 голосов
/ 26 июня 2018

У меня есть пара инструментов, которые работали годами, создавались и поддерживались в Excel.Они открывают IE, входят в отраслевую базу данных, копируют некоторую информацию, а затем снова закрываются.Недавно было обновлено Office и IE, и теперь мы часто встречаемся с IE, блокирующимся в неотвечающее состояние, как только оно открывается, особенно при многократном использовании.

IEверсия работала на 11.0.56, но не на 11.0.65 - однако откат ее, похоже, не устранил проблему, поэтому похоже, что более широкое обновление Office может повлиять на него.

Есть параразличных кодов для разных инструментов, но все они сталкиваются с одной и той же проблемой.

Это соответствующий бит кода, похоже, когда у s breaking it is immediately after IE has been opened. Any help greatly appreciated, as I say has been a reliable bit of code so strange it появились такие проблемы:

    Option Explicit

Dim IE As InternetExplorer
Dim HTMLForm As HTMLFormElement
Dim HTMLDOC As HTMLDocument
Dim strAddress As String
Dim strWarning As String
Dim booTOU As Boolean
Dim booSmart As Boolean
Dim intCount As Integer
Dim intCount2 As Integer
Dim intRowCount As Integer
Sub RegistryInfo()

On Error Resume Next

'Start
ActiveSheet.Unprotect
Application.ScreenUpdating = False

'open IE

Set IE = New InternetExplorer

' Make IE visible

IE.Visible = False

'Go to the website

IE.navigate "https://www.electricityregistry.co.nz/bin_public/jadehttp.dll?MariaWebR"

'Wait for the page to load

Do Until IE.readyState = READYSTATE_COMPLETE And IE.Busy = False
Loop

' set variables for easy access

Set HTMLDOC = IE.document
Set HTMLForm = HTMLDOC.forms(0)

'Look for username (tabindex : 652) and enter username / Look for password (tabindex : 654) and enter password

For intCount = 0 To HTMLForm.elements.Length - 1

    If HTMLForm.elements(intCount).TabIndex = 652 Then

        HTMLForm.elements(intCount).innerText = ActiveSheet.Range("H2").Value

    ElseIf HTMLForm.elements(intCount).TabIndex = 654 Then

        HTMLForm.elements(intCount).innerText = ActiveSheet.Range("H3").Value

    End If

Next

'Click ok on the web page

For intCount = 0 To HTMLForm.elements.Length - 1

    If HTMLForm.elements(intCount).TabIndex = 655 Then

        HTMLForm.elements(intCount).Click

        Exit For

    End If

Next

1 Ответ

0 голосов
/ 28 июня 2018

Это была обновленная версия расширения WebRoot, которая вызывала проблему - откатила ее и исправила проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...