使用Excel 2013可以登录网站并自动更改数据。通过VBA代码手动循环将数据输入网站,但单击按钮不会
以下代码完美地打开网站,输入用户名和密码,“登录”,然后打开下一个屏幕。
然后它应该在新屏幕上填充另外两个框,但不是。它产生一个运行时错误,说“对象是必需的”。
但是,如果我从错误行按“Debug”和“step through”,代码将完美运行!感激
收到
Option Explicit
Sub EnterWeb()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
Dim uRl As String
Dim UserN As Object 'MSHTML.IHTMLElement
Dim PW As Object 'MSHTML.IHTMLElement
Dim CoNum As Object 'MSHTML.IHTMLElement
Dim AuthCode As Object 'MSHTML.IHTMLElement
Dim SUBMIT As Object 'MSHTML.IHTMLElement
'STAGE 1 - LOG INTO THE WEBSITE
'Set the website
uRl = "WEBSITE NAME GOES HERE"
With IE
.navigate uRl
.Visible = True
End With
' loop until the page finishes loading
Do While IE.Busy
Loop
'Enter User name in "e-mail" textbox
Set UserN = IE.document.getElementByID("email")
If Not UserN Is Nothing Then
UserN.Value = "TEXT GOES HERE"
End If
'Enter Password in "Password" textbox
Set PW = IE.document.getElementByID("seccode")
If Not PW Is Nothing Then
PW.Value = "TEXT GOES HERE"
End If
'Sign in to site
Dim Item As Object
Set Item = IE.document.getElementsByClassName("button positive regular")
Item.Item(0).Click
'STAGE 2 -ENTER DETAILS ON NEXT PAGE
'Enter in First textbox
'THIS IS WHERE THE PROBLEM STARTS.
'RUNNING MACRO AUTOMATICALLY GENERATES A RUNTIME ERROR 424 - "OBJECT REQUIRED"
'BUT STEPPING THROUGH USING F8 IT RUNS PERFECTLY
Set CoNum = IE.document.getElementByID("PUTS ID HERE")
If Not CoNum Is Nothing Then
CoNum.Value = "PUTS VALUE HERE"
End If
'Enter Code in textbox
Set AuthCode = IE.document.getElementByID("PUTS CODE HERE")
If Not AuthCode Is Nothing Then
AuthCode.Value = "PUTS TEXT HERE"
End If
End Sub
所有建议Ochimus
如果它在Debug中工作,但不是在直通时运行,那么您可能会遇到计时问题。您可能需要等待页面上的某个事件才能完成。例如,您在第2阶段之前单击该按钮后不需等待。您需要等待*每次您*导航。 –