VBA IE 11运行时

时间:2015-03-09 02:02:55

标签: excel vba internet-explorer-11

之前我已经在IE 11中编写了VBA,并且能够解决问题,但在此我不断收到错误91或错误424.虽然有时它完美无缺。

不幸的是,由于密码受到保护,我无法共享确切的网站,但我包含了相关的源代码。

我明确选项,所以我的变量应该没有问题。

这些都是我尝试用昨天的日期填充方框的所有不同方式,但没有一种方法有效。

html.getElementById("begin")(1).Value = Format(Date - 1, "mm/dd/yyyy") '<-error 91

Set StartDate = html.getElementById("begin")  ‘<- Error 424 or Erorr 80010108
Set EndDate = html.getElementById("end")
Set CampaignID = html.getElementById("campaign_id")

这些是我尝试的4种不同的东西,但它们都是定期工作的。

StartDate.Item(0).Value = Format(Date - 1, "mm/dd/yyyy")  ‘<-Error 91
StartDate.Value = Format(Date - 1, "mm/dd/yyyy")
StartDate.Value(0) = Format(Date - 1, "mm/dd/yyyy")
Set StartDate(0).Value = Format(Date - 1, "mm/dd/yyyy

源代码:

<div class="row form-group">
<div class="col-xs-12">
        <div class="row">
            <div class="pull-left text-left" style="width:115px;margin-left:20px">
                <label for="">From :</label>
            </div>
            div class="col-xs-3">
            <input type="text" name="begin" value="" class="form-control input-sm datepicker" id="begin" />
            </div>
            <div class="col-xs-1 text-right">
                <label for="">To :</label>
            </div>
            <div class="col-xs-3">
            <input type="text" name="end" value="" class="form-control input-sm datepicker" id="end" />
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

我明白了。

我登录后刷新了页面。这会重置权限并阻止我更改任何文本框。不知道为什么,但这只是问题的一半。

然后,我更改了变量编辑以运行页面上的“输入”的整个列表,如下所示:

    Dim CampaignId, StartDate, EndDate, RunReport As Object

    Set StartDate = appIE.Document.getelementbyid("begin")
    Set EndDate = appIE.Document.getelementbyid("end")
    Set CampaignId = appIE.Document.getelementbyid("campaign_id")
    Set RunReport = appIE.Document.getElementsByName("_action_report")

    ButtonNum = 0
    Set objCollection = appIE.Document.getElementsByTagName("input")
    While ButtonNum < objCollection.Length
        If objCollection(ButtonNum).Name = "begin" Or _
        objCollection(ButtonNum).Name = "end" Then
            Set objElement = objCollection(ButtonNum)
            objCollection(ButtonNum).Value = Format(Date - 1, "mm/dd/yyyy")
        End If
        ButtonNum = ButtonNum + 1
    Wend

这样就找到了getElementById失败的页面上的按钮。

感谢您的期待!