Ich schreibe ein Makro, um auf eine Webseite zuzugreifen, nachdem der Benutzer seine Login-ID/Passwort eingegeben hat. Ich habe Code hinzugefügt, um das Sub zu beenden, wenn eines dieser Felder leer ist - aber wie würde ich das Ereignis behandeln, dass die Anmeldung nicht funktioniert? Derzeit bringt es sie nur auf die Anmeldeseite der Website, aber ich würde lieber die Login-Code-Schleife haben, bis der Login funktioniert.VBA Handle Ereignisse mit Website-Login
Irgendwelche Möglichkeiten, dies zu tun? Ich bin nicht vertraut mit Internet Controls.
Der Login-Teil meines Code sieht wie folgt aus:
Set SupDOC = SupIE.document
With SupDOC.forms(0)
.j_username.Value = InputBox("To Login Dun & Bradstreet, Enter your D&B Username/Email: ")
If .j_username.Value = "" Then
MsgBox "No Username was entered."
Exit Sub
End If
.j_password.Value = InputBox("To Login Dun & Bradstreet, Enter your D&B Password: ")
If .j_password.Value = "" Then
MsgBox "No Password was entered."
Exit Sub
End If
.submit
End With
EDIT:
die Login-Zeiten-out und nach korrekten Login-Informationen einreichen, die Website Manchmal leitet auf „Session out abgelaufen "und die Anmeldung erfordert erneut. Nach dem Anmelden wird die Site nicht auf die Seite geladen, die ich später angegeben habe. Irgendwelche Ideen, um das zu beheben?
Danke,
Was definiert ReadyState 4? (Ich wusste nicht, dass es verschiedene Fertigzustandszustände gibt). Führt diese Schleife auch, wenn eine ungültige Anmeldung eingegeben wurde? – AnthonyT
Nur den Code getestet, egal was ich eintippe, es fragt das Meldungsfeld – AnthonyT
IE hat 4 bereit Zustände, im Wesentlichen jeder von ihnen repräsentieren einen anderen Ladezustand der Seite, 1 wird überhaupt nicht geladen, 4 wird vollständig geladen und Du bist in der Lage zu interagieren und alles. https://msdn.microsoft.com/en-us/library/ms534361(v=vs.85).aspx – Alex