首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不断收到运行时错误VBA

不断收到运行时错误VBA
EN

Stack Overflow用户
提问于 2015-04-22 14:58:36
回答 1查看 1K关注 0票数 4

我试图让这登录到我的网站与一个主登录页面和第二个一次性密码(OTP)页面。但是我得到了一个错误

运行时错误'-2147467259 (80004005)':

自动化错误

不明错误

在这一行可以找到:

代码语言:javascript
复制
 If InStr(wd.document.Title, "Sales Force Automation") <> 0 Then

我在这里做错了什么?我对这门语言是个新手,因为我两天前才开始学习。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2015-05-13 11:40:19

我以前遇到过类似的问题,我发现VBA试图在创建或更改对象之前对该对象执行操作,正如代码所预期的那样。因此,当单步执行代码时,因为它在步骤之间有足够的时间来完成计算,所以需要工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29790015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档