4

これを取得して、メインのログイン ページと 2 番目のワンタイム パスワード (OTP) ページで自分の Web サイトにログインしようとしています。しかし、私はエラーを取得しています

実行時エラー '-2147467259 (80004005)':

自動化エラー

不明なエラー

この行で見つかりました:

 If InStr(wd.document.Title, "Sales Force Automation") <> 0 Then

ここで何が間違っていますか?2日前に学習を始めたばかりなので、この言語は初めてです。

Dim wd As SHDocVw.InternetExplorer

Sub login()
    Dim username As Range
    Dim password As Range
    Dim otp As Range
    Dim myValue As Variant

    Set wd = CreateObject("InternetExplorer.Application")
    wd.silent = True
    wd.navigate "Http://www.XXXXXXXXXXX.com"
    wd.Visible = True

    Set username = Range("B1")
    Set password = Range("B2")

    While wd.Busy
        DoEvents
    Wend

    wd.document.all.UserId.Value = username
    wd.document.all.password.Value = password

    Application.Wait (Now + TimeValue("0:00:10"))

    wd.document.all.btnobj.Click

    myValue = InputBox("Enter OTP")
    Range("B3").Value = myValue


Err_Clear:
    If Err <> 0 Then
        Err.Clear
        Resume Next
    End If

    Call FindTicketWindow
End Sub

Sub FindTicketWindow()
    Dim otp As Range

    For Each wd In CreateObject("Shell.Application").Windows
        If wd = "Internet Explorer" Then
            If InStr(wd.document.Title, "Sales Force Automation") <> 0 Then
                Application.Wait (Now + TimeValue("0:01:00"))
                Exit For
            End If
        End If
    Next wd

    Set otp = Range("B3")

    While wd.Busy
        DoEvents
    Wend

    myVar = wd.document.Title

    wd.document.all.verficationcode.Value = otp
    Application.Wait (Now + TimeValue("0:00:10"))
    wd.document.all.btnobj.Click
End Sub
4

1 に答える 1

0

私は以前にこのような問題を抱えていました.コードが期待するようにオブジェクトが作成または変更される前に、VBAがオブジェクトに対して操作を実行しようとしていることがわかりました。したがって、ステップ間に計算を完了するための十分な時間があるため、コードをステップ実行するときに機能します。

于 2015-05-13T03:40:18.980 に答える