Я пытаюсь добавить некоторый код, чтобы всплывать пользовательская форма, которая позволяет конечному пользователю вводить свой логин/пароль для определенного веб-сайта. Этот код Passing variable from Form to Module in VBA приблизил меня к моей цели, но я не уверен, как заставить его работать так, как мне нужно. Вот код для моей пользовательской формы.Назначение переменной непосредственно из пользовательской формы
Private Sub CommandButton1_Click()
UPass = UserForm1.UserID
Unload UserForm1
End Sub
Private Sub CommandButton1_Click()
UID = UserForm1.WavePassword
Unload UserForm1
End Sub
И я использую приведенное ниже в коде для входа на сайт.
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
Проблема Я бегу в том, что я получаю ошибку «ожидаемого конца заявления» на UID/upass переменных. Как правильно получить форму пользователя, чтобы передать вход непосредственно в переменную, чтобы переменная могла использоваться для входа на веб-сайт? Я полностью открыт для изменения метода, если есть лучший способ.
Я даже не получил вплоть до запуска любого набора кода. Когда я закончил набирать строки UID =/UPass =, они оба покраснели и отметили ошибку. – TonyP
Процедура 'CommandButton1_Click' определена дважды. Это невозможно компилировать. Также 'Connect_To_Wave()' должно быть 'ConnectToWave (ByVal uid As String, ByVal pwd As String)' - вы не показываете, где форма instanciated, но она назначает глобальные переменные и выгружает глобальный/стандартный экземпляр формы isn это знак сплошного кода. –
Я сделал эти изменения, как было предложено. Я не знаю, как это проверить. Я ударил F8, чтобы запустить пользовательскую форму, и это работает, как я полагаю, но я не уверен, как тестировать код входа одновременно. Когда я пытаюсь F8, код входа в систему теперь просто звучит, но не содержит сообщения об ошибке. – TonyP