2015-04-22 4 views
4

Я пытаюсь получить это, чтобы войти в мой сайт с главной страницей входа и второй страницей с одним паролем времени (OTP). Но я получаю и ошибкаПродолжайте получать ошибки во время выполнения VBA

Ошибка выполнения '-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 
+0

Я думаю, что ошибка лежит в 'wd.document.Title', потому что вы обращаетесь к члену' .document'. Это справедливо для объекта InternetExplorer, но я не думаю, что он действителен для Shell Window. –

+0

Можете ли вы сделать 'TypeName (wd.document.Title)'. Держу пари, что это не ниточка, ни ничего? –

+0

Если я должен был шаг за шагом, он работает, но когда я его запускаю, он просто застревает в этой ошибке. –

ответ

0

У меня была проблема, как это раньше, что я нашел, что VBA пытается выполнить операцию на объекте до того, как объект был создан или изменен код будет ожидать. Следовательно, при переходе через код работает, потому что у него достаточно времени между шагами для завершения вычислений.