我是VBA的新手。 我正在创建vba用于登录网站并获取信息,但是当我尝试登录时请求验证码。我需要一个代码,等到验证码被输入并提交表单。请帮助我。
Sub iepart2()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
With ie
.Visible = True
.navigate "http://adb.in/ser/"
Do While .busy
DoEvents
Loop
Do While .readystate <> 4
DoEvents
Loop
Set txtUname = .document.getelementbyid("txtUname")
txtUname.Value = "Amarindaz"
Set txtEmail = .document.getelementbyid("txtEmail")
txtEmail.Value = "Amarindaz@gmail.com"
Application.Wait Now + TimeValue("00:00:15")
.Quit
End With
End Sub
答案 0 :(得分:0)
我建议不要在代码中使用wait。只需将代码分成两部分,让用户在两者之间进行验证码。
要做到这一点,您只需要更持久地存储IE对象(使用Static或Public关键字,而不是Dim)。这将允许您在用户键入验证码后继续使用相同的对象(浏览器窗口)。
为了让您了解我的意思,这里是一个伪代码,利用公共模块级别ie
变量。只需复制到空白模块:
Public ie As Object
Sub login()
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate "http://adb.in/ser/"
'all the other login stuff. filling in the input elements
End Sub
Sub query() 'Just for demonstration, nothing useful going on here :)
ie.Visible = False
ie.Visible = True
End Sub