我是VBA和一般编程的新手,我在网上找到了一些自动化网页处理的代码。现在我只是想登录e-Oscar的网页:
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&amp; C的方框。但是,每当我取消注释&#34; securityMsgAck&#34;它不再检查框并给我一个错误:
运行时错误&#39; 91&#39;:对象变量或未设置块变量。\
如果我发表评论&#34; securityMsgAck&#34;它也会这样做。并取消注释&#34;按钮&#34;。似乎我的代码试图在没有执行这两个部分的情况下检查框,但是当它们声明要么失败才能尝试按下它,或者它们完全阻止它。我不太确定......任何建议都会受到赞赏。提前谢谢。
修改:每当我取消注释该代码的任何部分时,我的程序也将不再填写公司ID,userId或密码,同时未检查安全消息框...
答案 0 :(得分:1)
选中该复选框,使用以下代码
ElseIf objcollection(i).ID = "securityMsgAck1" Then
objcollection(i).Checked = True