我试图让这登录到我的网站与一个主登录页面和第二个一次性密码(OTP)页面。但是我得到了一个错误
运行时错误'-2147467259 (80004005)':
自动化错误
不明错误
在这一行可以找到:
If InStr(wd.document.Title, "Sales Force Automation") <> 0 Then我在这里做错了什么?我对这门语言是个新手,因为我两天前才开始学习。
Dim wd As SHDocVw.InternetExplorer
Sub login()
Dim username As Range
Dim password As Range
Dim otp As Range
Dim myValue As Variant
Set wd = CreateObject("InternetExplorer.Application")
wd.silent = True
wd.navigate "Http://www.XXXXXXXXXXX.com"
wd.Visible = True
Set username = Range("B1")
Set password = Range("B2")
While wd.Busy
DoEvents
Wend
wd.document.all.UserId.Value = username
wd.document.all.password.Value = password
Application.Wait (Now + TimeValue("0:00:10"))
wd.document.all.btnobj.Click
myValue = InputBox("Enter OTP")
Range("B3").Value = myValue
Err_Clear:
If Err <> 0 Then
Err.Clear
Resume Next
End If
Call FindTicketWindow
End Sub
Sub FindTicketWindow()
Dim otp As Range
For Each wd In CreateObject("Shell.Application").Windows
If wd = "Internet Explorer" Then
If InStr(wd.document.Title, "Sales Force Automation") <> 0 Then
Application.Wait (Now + TimeValue("0:01:00"))
Exit For
End If
End If
Next wd
Set otp = Range("B3")
While wd.Busy
DoEvents
Wend
myVar = wd.document.Title
wd.document.all.verficationcode.Value = otp
Application.Wait (Now + TimeValue("0:00:10"))
wd.document.all.btnobj.Click
End Sub发布于 2015-05-13 11:40:19
我以前遇到过类似的问题,我发现VBA试图在创建或更改对象之前对该对象执行操作,正如代码所预期的那样。因此,当单步执行代码时,因为它在步骤之间有足够的时间来完成计算,所以需要工作。
https://stackoverflow.com/questions/29790015
复制相似问题