Ошибка времени выполнения '424': требуется объект IE.Document.GetElementById - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь автоматически заполнить форму на веб-сайте со значениями файла Excel.

Sub CommandButton1_Click()
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.navigate "https://www.ryanair.com/be/nl/check-in"
End With

Do Until IE.readyState = 4
DoEvents
Loop

   IE.document.getElementbyid("username").Value = "resa@connections.be"


End Sub

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Спасибо за быстрый ответ! Я только что сделал небольшие изменения, так как получил сообщение об ошибке, и я работаю с кнопкой. Теперь это работает как шарм!

Public Sub CommandButton1_Click()
    Dim ie As New InternetExplorer, t As Date, ele As Object
    Const MAX_WAIT_SEC As Long = 10
    t = Timer

    With ie
        .Visible = True
        .Navigate2 "https://www.ryanair.com/be/nl/check-in"

        While .Busy Or .readyState < 4: DoEvents: Wend

        Do
            On Error Resume Next
            Set ele = .document.getElementById("username")
            On Error GoTo 0
            If Timer - t > MAX_WAIT_SEC Then Exit Do
        Loop While ele Is Nothing

        If ele Is Nothing Then Exit Sub

        ele.Value = "resa@connections.be"
End With
End Sub
0 голосов
/ 03 апреля 2019

Использовать синхронизированный цикл для присутствия элемента

Option Explicit
'VBE > Tools > References:
' Microsoft Internet Controls
'
Public Sub CommandButton1_Click()
    Dim ie As New InternetExplorer, t As Date, ele As Object
    Const MAX_WAIT_SEC As Long = 10


    With ie
        .Visible = True
        .Navigate2 "https://www.ryanair.com/be/nl/check-in"

        While .Busy Or .readyState < 4: DoEvents: Wend
        t = Timer
        Do
            On Error Resume Next
            Set ele = .document.getElementById("username")
            On Error GoTo 0
            If Timer - t > MAX_WAIT_SEC Then Exit Do
        Loop While ele Is Nothing

        If ele Is Nothing Then Exit Sub

        ele.Value = "resa@connections.be"

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