Ich versuche, Code hinzuzufügen, um ein Benutzerformular zu öffnen, das dem Endbenutzer erlaubt, sein Login/Passwort für eine bestimmte Website einzugeben. Dieser Code Passing variable from Form to Module in VBA brachte mich meinem Ziel näher, aber ich bin mir nicht sicher, wie ich es so machen kann, wie ich es brauche. Hier ist der Code für mein Benutzerformular.Eine Variable direkt von einem Benutzerformular zuweisen
Private Sub CommandButton1_Click()
UPass = UserForm1.UserID
Unload UserForm1
End Sub
Private Sub CommandButton1_Click()
UID = UserForm1.WavePassword
Unload UserForm1
End Sub
Und ich benutze die unten im Code, um sich auf der Website anzumelden.
Public Sub Connect_To_Wave()
Dim Dasboard As Worksheet
Set Dashboard = ActiveWorkbook.Worksheets("Dashboard")
Dim UID As String
UID = driver.findElementByName("PASSWORD").SendKeys UID
Dim UPass As String
UPass = driver.findElementByName("PASSWORD").SendKeys Upass
Set ie = CreateObject("InternetExplorer.Application")
my_url = "url of website - not a variable"
With ie
.Visible = True
.Navigate my_url
.Top = 100
.Left = 530
.Height = 700
.Width = 400
Do Until Not ie.Busy And ie.readyState = 4
DoEvents
Loop
End With
ie.Document.getElementById("txtLoginUsername").Value = ""
ie.Document.getElementById("txtLoginPassword").Value = ""
ie.Document.getElementById("txtLoginUsername").Value = UID
ie.Document.getElementById("txtLoginPassword").Value = UPass
ie.Document.getElementById("btnLogin").Click
Do Until Not ie.Busy And ie.readyState = 4
DoEvents
Loop
End Sub
Das Problem, das ich in laufen lasse, ist, dass ich einen Fehler von „erwartetem Ende der Anweisung“ auf der uid/upass Variablen erhalten. Wie bekomme ich das Benutzerformular korrekt, um die Eingabe direkt in die Variable zu übergeben, damit die Variable für die Anmeldung auf der Website verwendet werden kann? Ich bin völlig offen, die Methode zu ändern, wenn es auch einen besseren Weg gibt.
Ich habe nicht einmal bekommen bis zu dem Punkt, an dem beide Codes ausgeführt werden. Als ich mit der Eingabe der UID =/UPass = Zeilen fertig war, wurden beide rot und markierten den Fehler. – TonyP
Prozedur 'CommandButton1_Click' ist zweimal definiert. Das kann nicht kompiliert werden. Außerdem sollte 'Connect_To_Wave()' 'ConnectToWave (ByVal uid als String, ByVal pwd als String) sein '- Sie zeigen nicht an, wo das Formular instanziiert ist, sondern es weist globale Variablen zu und entlädt die globale/Standardinstanz des Formulars isn Es ist ein Zeichen für festen Code. –
Ich habe diese Änderungen wie vorgeschlagen vorgenommen. Ich bin mir nicht sicher, wie ich es von hier aus testen soll. Ich habe F8 gedrückt, um das Benutzerformular auszuführen, und das läuft wie erwartet, aber ich bin mir nicht sicher, wie ich den Login-Code gleichzeitig testen soll. Wenn ich versuche, den Login-Code jetzt zu f8 zu senden, gibt es nur eine Fehlermeldung, aber keine Fehlermeldung. – TonyP