使用VBA检查IE中的单选按钮,奇怪的行为

时间:2015-01-10 17:53:20

标签: html excel vba internet-explorer

我遇到了一个让我感到难过的问题。

我的问题如下: 我想使用VBA检查IE中的radiobutton。应该简单吧?我检查了这个网站上的解决方案,我尝试将它们应用到我的场景中。但是,似乎我甚至无法得到这个元素......

这是HTML源代码段:

        <table class="MainTable" width="962px">
        <tr>
            <td class="HistorySections" style="height: 29px; vertical-align: top;">
            <span id="lblReportType" class="Panel4" style="display:inline-block;height:15px;width:409px;"> Report Type</span>
              <table class="MainTable" width="413" style="height: 60px">
                    <tr>
                        <td style="height: 22px">
                            <span style="display:inline-block;width:110px;"><input id="optRCV" type="radio" name="RptType" value="optRCV" onclick="javascript:setTimeout('__doPostBack(\'optRCV\',\'\')', 0)" /><label for="optRCV">Receivables</label></span>

从我可以收集的信息来看,我的无线电按钮被称为“optRCV”。

我根据我在这里学到的东西尝试了各种方法检查无线电按钮,但它总是失败。在使用radiobutton的线路上没有设置对象错误。因此,我尝试了一条简单的线路来查看错误。

MsgBox IE.document.getElementById("optRCV").ID

根据我对VBA和IE的有限理解,这应该显示Radiobutton的ID,对吧?我尝试了类似的东西以确保我正确使用它

MsgBox IE.document.getElementsByTagName("TABLE")(0).ID

此行显示带有ID的消息框(ID为空白,但不会导致错误)。

有什么理由,为什么我不能使用它的ID与radiobutton互动?有趣的是,当我点击网页的顶部并使用View source时,它会显示与我点击radiobutton所在网页部分时不同的源代码。

所以我的想法是,我首先需要告诉IE查看网页的正确部分,但我不知道该怎么做。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

MsgBox IE.document.getElementsByTagName("TABLE")(0).ID

你的代码返回表格中包含span,td,tr等元素的集合,所以如果你想获得radiobutton,你就不应该拿起第一个元素

您的代码应如下所示:

IE.document.getElementById("optRCV").getAttribute("id")