打开IE弹出框时停止VBA停止并关闭弹出警告框

时间:2013-11-05 10:49:41

标签: excel excel-vba automation ui-automation webautomation vba

这个令人愤怒的弹出框让我困扰了2个月..有些人帮我解决了这个问题。

我编写了一个代码来点击我的网页中的锚点链接,当点击此链接时,它通常会导航到下一页。如果在单击链接的页面上没有正确提供数据,则会打开一个弹出框,我的VBA代码会停止,直到我在弹出框中单击确定(为什么我的VBA代码在这里停止?)。 此外,我需要使用我的VBA关闭此按钮并更正数据并再次单击链接。 我尝试过以下解决方案,它们对我来说似乎不是什么灵丹妙药。 1.删​​除onclick属性(http://www.mrexcel.com/forum/excel-questions/426740-using-visual-basic-applications-close-internet-explorer-message-box-popup.html)即使它适用于我的情况,它也不起作用 2.发送密钥 - 我不知道为什么人们甚至将此作为解决方案发布。我的代码在点击链接后很快停止,代码永远不会到达行发送密钥,直到弹出我手动sclosed。

3.在点击链接之前打开另一个excel,并在新的Excel中运行代码以关闭弹出框并关闭它(http://www.vbaexpress.com/kb/getarticle.php?kb_id=1146)这似乎有效但我需要点击该链接近500个时间这使得代码不时打开excel表,这看起来很笨拙,耗时耗费并且不可行 有人可以告诉我一个关闭对话框的方法,为什么有人发明了这个警报框。

这是我的代码

while x>1

'Fill the details in webpage 

 Set TDelements = IEfr1.getElementsByTagName("a")
     For Each TDelement In TDelements
       If TDelement.innerText = "Next" Then
        ' TDelement.Focus
        ' Call BeginTimer(500, IE.hwnd)

       TDelement.Click '//this makes the alert box fire and code halts here until the box is closed

        'TDelement.setAttribute "onclick", "return true"
      TDelement.FireEvent ("onClick")
       TDelement.FireEvent ("onsubmit")
       ' Application.Wait (10000)
       While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE: DoEvents: Wend

       End If

      Next

0 个答案:

没有答案