使用VBA的网页自动化

我是VBA和编程的新手,我已经发现了一些在线代码来自动化网页处理。 现在我只是想login到电子奥斯卡的网页:

Do While IE.Busy Application.Wait DateAdd("s", 1, Now()) Loop Set objCollection = IE.document.getElementsByTagName("input") Set objName = IE.document.getElementsByTagName("name") i = 0 While i < objCollection.Length If objCollection(i).ID = "companyId" Then ' Set text for search objCollection(i).Value = "companyId" Else If objCollection(i).ID = "userId" Then objCollection(i).Value = "uId" Else If objCollection(i).ID = "password" Then objCollection(i).Value = "pwd" Else If objCollection(i).ID = "securityMsgAck1" Then objCollection(i).Value = True 'Else 'If objName(i).Name = "securityMsgAck" Then 'objName(i).Value = True 'Else 'If objCollection(i).ID = "button" Then 'objCollection(i).Value = True ' "Search" button is found Set objElement = objCollection(i) End If End If End If End If 'End If 'End If i = i + 1 Wend objElement.Click ' click button to search 

当运行AS-IS时。 这段代码打开了我试图自动化的网页,填写公司ID,用户ID,密码,似乎检查我承认页面的T&C的框。 但是,每当我取消注释“securityMsgAck”它不再检查框,并给我一个错误:

运行时错误“91”:对象variables或块variables未设置。\

如果我注释掉“securityMsgAck”并取消注释“button”,也是这样。 看来我的代码试图检查框,只要这两个部分不执行,但是当他们是声明要么失败之前,它可以尝试按下,或者他们完全阻止它。 我不太确定…任何意见,将不胜感激。 提前致谢。

编辑:每当我取消注释该代码的任何部分,我的程序也将不再填写公司Id,userId,或密码,以及未能检查安全消息框…

检查checkbox使用下面的代码

  ElseIf objcollection(i).ID = "securityMsgAck1" Then objcollection(i).Checked = True