使用VBA进行网页自动化

时间:2016-11-21 15:05:43

标签: excel vba excel-vba internet-explorer input

我是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或密码,同时未检查安全消息框...

1 个答案:

答案 0 :(得分:1)

选中该复选框,使用以下代码

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