繁体   English   中英

如何确保宏的所有部分都正常运行?

[英]How to make sure all the parts of a macro are running correctly?

我有这段代码,基本上应该从网站上依次单击几个按钮。

For Each Element In Ie.getElementsByTagName("a")
    If Element.innerText = "Advanced Search" Then
        'Debug.Print element.innerText
        '**element.Click**
        Exit For
    Else
    End If
Next Element

Set objShell2 = CreateObject("Shell.Application")
IE_count = objShell2.Windows.Count

For X = 0 To (IE_count - 1)
    On Error Resume Next
    my_url = objShell2.Windows(X).Document.Location
    my_title = objShell2.Windows(X).Document.Title
    MsgBox ("The title of this page is: " & my_title)


    If my_title Like "Client List Management" & "*" Then
        Set ie2 = objShell2.Windows(X).Document
        my_title3 = ie2.Title
        MsgBox ("The title of Client List Management is: " & my_title3)
        Exit For
    Else
    End If

Next

For Each Element In ie2.getElementsByTagName("a")
    If Element.innerText = "Accounts" Then
        'Debug.Print element.innerText
        '**element.Click**
        Exit For
    Else
    End If
Next

For Each Element In ie2.getElementsByTagName("a")
  If Element.innerText = "SEARCH" Then
        'Debug.Print element.innerText
        '**element.Click**
        Exit For
    Else

    End If
Next

For Each Element In ie2.getElementsByTagName("a")
    If Element.innerText = "BATCH EXPORT" Then
        'Debug.Print element.innerText
        '**element.Click**
        Exit For
    Else
    End If
Next

问题是,当我运行整个宏时,仅单击了第一个按钮(按钮“高级搜索”),而在单击“高级搜索”按钮后应单击的其他按钮则没有任何反应。

但是,当我尝试调试代码并进入程序的每个步骤时,都会单击应单击的每个按钮。 首次亮相时,一切正常。 唯一的问题在于程序实际上自己运行时。

您知道如何解决此问题吗?

谢谢 :)

如果计时是一个问题,那么您可以等待Internet Explorer不忙并且readystate等于4。

尝试将While Ie.readyState <> 4 Or Ie.Busy: DoEvents: Wend在可能加载页面的部分中放置。 (导航后,单击按钮等)。


如果所有人都说这还不够,那么您始终可以使用sleep API。

#If VBA7 And Win64 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

如果您不能等待上面的工作,我只会这样做。


就绪状态4表示已发送请求,服务器已完成返回响应,浏览器已完成下载响应内容。

Microsoft的文档中的 繁忙描述为:

获取一个值,该值指示对象是从事导航还是下载操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM