因此,这是我尝试循环浏览并单击链接的网页上生成的JavaScript表。链接打开一个弹出窗口,然后VBA单击弹出窗口中的一个按钮,该按钮将更新并关闭窗口。它非常适合第一个弹出窗口,但是当它碰到最后一行“下一个链接”时,它会返回到For
,但是“ link”的变量为空,但是还有2个链接,并且会抛出错误,因为链接=空。
我进行了另一个简单的循环,该循环仅循环浏览allLinks
中的链接,以确保它可以看到它们并且确实起作用,因此可以加载它们。
感谢您的帮助,感谢大家的宝贵时间。
哦和Application.Wait
是临时的,当我让这个人正常运行时,我将它们替换为Do While
。
单击按钮后,看起来链接失去了属性
wd.document.getElementById("btnAddItem").Click
Set allLinks = appIE.document.getElementById("tblItems").getElementsByTagName("a")
For Each link In allLinks
appIE.Navigate link
Application.Wait (Now + TimeValue("0:00:03"))
For Each wd In CreateObject("Shell.Application").Windows
If wd = "Internet Explorer" Then
If InStr(UCase(wd.document.Title), "ITEM") <> 0 Then
Application.Wait (Now + TimeValue("0:00:01"))
wd.document.getElementById("btnAddItem").Click
Application.Wait (Now + TimeValue("0:00:01"))
Exit For
End If
End If
Next wd
Next link
我只需要注释退出,因为它退出了两个循环
Set allLinks = appIE.document.getElementById("tblItems").getElementsByTagName("a")
For Each link In allLinks
appIE.Navigate link
Application.Wait (Now + TimeValue("0:00:03"))
For Each wd In CreateObject("Shell.Application").Windows
If wd = "Internet Explorer" Then
If InStr(UCase(wd.document.Title), "ITEM") <> 0 Then
Application.Wait (Now + TimeValue("0:00:01"))
wd.document.getElementById("btnAddItem").Click
Application.Wait (Now + TimeValue("0:00:01"))
'Exit For
End If
End If
Next wd
Next link