2017-02-15 3 views
2

IchLaufzeitfehler ‚91‘: Objektvariable oder With-Blockvariable nicht gesetzt, während Scripting URL-Daten in VBA

Laufzeitfehler ‚91‘ immer: Objektvariable oder With-Blockvariable nicht gesetzt

während URL-Daten Scripting

ich erhalte diesen Fehler am Ende meines Codes, wo ich denn meinen Code dh popup.click auszuführen.

Eine Sache, bemerkte mich, wenn ich diesen Code unten Schritt für Schritt mit Hilfe von F8 laufen ich war nicht so Fehler auftreten, aber ich bin vor diesem Fehler, wenn ich den Code mit Hilfe von Run-Taste ausführen.

Eine weitere Sache möchte ich nur erwähnen, dass, wenn ich den Code mit ausführen Button Popup-Wert zeigt nichts, wie ich überprüfe.

 Sub GoToWebsiteTest() 
     Dim appIE As InternetExplorerMedium 
     Dim tags As Object 
     Dim tagx As Object 
     Dim repo As Object 
     Dim popup As Object 
     Dim Element As HTMLButtonElement 
     Dim MyHTML_Element As IHTMLElement 
     Dim HTMLdoc As HTMLDocument 

     i = 0 
     Set appIE = New InternetExplorerMedium 
     sURL = "https://oneview.myurl.in/" 
     With appIE 
      .navigate sURL 
      .Visible = True 
     End With 

     Do While appIE.Busy Or appIE.readyState <> 4 
      DoEvents 
     Loop 

     appIE.document.getElementById("Username").Value = "xxx" 
     appIE.document.getElementById("Password").Value = "xxxx" 

     i = InputBox("type") 

     appIE.document.getElementById("txtcaptcha").Value = i 

     Set tags = appIE.document.getElementsByTagName("input") 

     For Each tagx In tags 
     If tagx.Type = "submit" Then 
      tagx.Click 
     End If 
     Next 

     Do While appIE.Busy Or appIE.readyState <> 4 
      DoEvents 
     Loop 

     Set popup = appIE.document.getElementById("ctl00_MainContent_gridUser_ctl00_ctl04_lnkG2") 

' Here I am getting Object variable or With block variable not set error 

    popup.Click 
+0

Könnte sein, dass es nicht genug Zeit, um die zwischen den beiden Linie, wenn normal laufen, versuchen Sie hinzuzufügen 'DoEvents' kurz vor' popup.Click' – R3uK

+0

@ R3uK Sir, ich habe versucht, die same.I hinzufügen code ** Do While appIE.Busy Oder appIE.readyState <> 4: DoEvents: Loop ** -Code aber trotzdem wird der Fehler nicht behoben. – sagar

+0

Ja, ich habe gesehen, dass du es dort benutzt hast (dort wird es benutzt, um darauf zu warten, dass die Seite geladen wird), aber ich schlage vor, dass du es zwischen 'Set popup = ap ...' und 'popup hinzufügst. Klicken Sie auf "." – R3uK

Antwort

0

Versuchen Sie dies und lassen Sie mich wissen, wenn Sie die MsgBox haben oder ob es funktioniert:

Sub GoToWebsiteTest() 
    Dim appIE As InternetExplorerMedium 
    Dim tags As Object 
    Dim tagx As Object 
    Dim repo As Object 
    Dim popup As Object 
    Dim Element As HTMLButtonElement 
    Dim MyHTML_Element As IHTMLElement 
    Dim HTMLdoc As HTMLDocument 

    i = 0 
    Set appIE = New InternetExplorerMedium 
    sURL = "https://oneview.myurl.in/" 
    With appIE 
     .navigate sURL 
     .Visible = True 
    End With 

    Do While appIE.Busy Or appIE.readyState <> 4 
     DoEvents 
    Loop 

    appIE.document.getElementById("Username").Value = "xxx" 
    appIE.document.getElementById("Password").Value = "xxxx" 

    i = InputBox("type") 

    appIE.document.getElementById("txtcaptcha").Value = i 

    Set tags = appIE.document.getElementsByTagName("input") 

    For Each tagx In tags 
    If tagx.Type = "submit" Then 
     tagx.Click 
    End If 
    Next 

    Do While appIE.Busy Or appIE.readyState <> 4 
     DoEvents 
    Loop 



    Set popup = appIE.document.getElementById("ctl00_MainContent_gridUser_ctl00_ctl04_lnkG2") 

    DoEvents 
    If Not popup Is Nothing Then 
     popup.Click 
    Else 
     MsgBox "popup is not defined!", vbOKOnly + vbCritical 
    End If 

    '''rest of your code 
End Sub 
0

ich das Problem mit Do Ereignis bemerkt haben So habe ich das gleiche und das unten versucht ändern Code, der gut funktioniert.

Sub GoToWebsiteTest() 
Dim appIE As InternetExplorerMedium 
Dim tags As Object 
Dim tagx As Object 
Dim repo As Object 

Dim Element As HTMLButtonElement 
Dim MyHTML_Element As IHTMLElement 
Dim HTMLdoc As HTMLDocument 

i = 0 
Set appIE = New InternetExplorerMedium 
sURL = "https://oneview.myurl.in/" 
With appIE 
    .navigate sURL 
    .Visible = True 
End With 

Do While appIE.Busy Or appIE.readyState <> 4 
    DoEvents 
Loop 

appIE.document.getElementById("Username").Value = "xxx" 
appIE.document.getElementById("Password").Value = "xxxx" 

i = InputBox("type") 

appIE.document.getElementById("txtcaptcha").Value = i 

Set tags = appIE.document.getElementsByTagName("input") 

For Each tagx In tags 
If tagx.Type = "submit" Then 
    tagx.Click 
End If 
Next 

Application.Wait (Now + TimeValue("00:00:05")) 

Dim popup As Object 
Set popup = appIE.document.getElementById("ctl00_MainContent_gridUser_ctl00_ctl04_lnkG2") 

popup.Click 
Verwandte Themen