Перестал работать мой макрос (без изменений) - PullRequest
0 голосов
/ 17 июня 2019

У меня есть макрос, который подключается к веб-странице, получает некоторую информацию и отображает ее в форме пользователя (для дальнейших действий):

Private Sub UserForm_Initialize()

Dim login As String, password As String
Dim waittime As String
Dim arrForms As Variant
Dim ie As InternetExplorer

LoadingForm.Show vbModeless
LoadingForm.lblLoading.Caption = "Loading..."

waittime = "0:00:02"
login = "lgn"
password = "passwrd"
txtEndDate.Value = Format(Now(), "dd.mm.yyyy")

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = False
'open login page
ie.navigate "my link (internal company database)"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop
Application.Wait (Now + TimeValue(waittime))

'if already logged in, skip
On Error GoTo Skip_login
ie.document.getElementById("_58_login").Value = login
ie.document.getElementById("_58_password").Value = password
ie.document.getElementsByClassName("btn btn-primary")(0).Click
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop
Application.Wait (Now + TimeValue(waittime))

Skip_login:
ie.navigate "my link (internal company database)"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop
Application.Wait (Now + TimeValue(waittime))

arrForms = GetListOfForms(ie) 'this is a function that reads the page,
'finds a table and converts its values to an array
'I tried to comment this line (maybe a bug in my function)
'but even without it the code does not work
For i = LBound(arrForms) To UBound(arrForms)
    FormsList.AddItem (arrForms(i))
Next i

'Log out and quit IE
ie.navigate "my link (internal company database)"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop
Application.Wait (Now + TimeValue(waittime))

ie.document.getElementById("sign-out").Click
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop
Application.Wait (Now + TimeValue(waittime))
ie.Quit

LoadingForm.Hide

End Sub

Несколько дней работало нормально. Это также сработало сегодня. Но он перестал работать по неизвестной причине (он просто говорит «ошибка автоматизации» без ссылки на ошибку в моем коде). Я использовал его, закрыл форму пользователя, а затем нажал, чтобы запустить макрос снова, и он не работает. Я пытался открыть старые резервные копии - они тоже перестали работать. Я ничего не менял (ссылки, логин / пароль, любая другая строка кода).

Моя пользовательская форма не имеет каких-либо необычных пользовательских элементов управления. Имеются только следующие элементы управления: текстовые поля, метки, рамки, список и кнопки)

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