麻烦选择网站上的复选框

时间:2014-03-13 01:05:12

标签: ajax excel vba excel-vba

经过几天的尝试和失败之后,我需要一些帮助。 我试图在网站上选中一个复选框,但它似乎并不像我想的那样工作。

复选框是表格中一行的一部分,以及其他一些数据。我的想法是登录网站(http://www.apf.asn.au),转到表格,从我的Excel工作表中找到我需要的数字,然后选择找到该数字的行中的框。

登录并导航到表格部分工作正常,但我找不到合适的方法来选择该框。

来自网站的

代码:

<div class="table">
  <div>
    <table class="table APFGrid StudentsSearch"
           id="ctl00_ContentPlaceHolderMainNoAjax_gvJumpRecordsList"
           style="border-collapse: collapse;" border="1" rules="all" cellspacing="0"
      <tbody>
        <tr>...</tr> 'Header
        <tr>
          <td>
            <span class="clsSelect">
              <input
       name="ctl00$ContentPlaceHolderMainNoAjax$gvJumpRecordsList$ctl02$chkSelect"
       id="ctl00_ContentPlaceHolderMainNoAjax_gvJumpRecordsList_ctl02_chkSelect"
       onclick="javascript:ToggleCheckBoxSelection;" type="checkbox"></input>
            </span>
          </td> 'Box need to check
          <td class="Name">...</td>
          <td class="Name">...</td>
          <td class="DateBirth">...</td>
          <td class="APFNum">...</td> 'Number I'm looking for
          <td class="JumpType">...</td>
          <td class="DateBooked">...</td>
          <td>...</td>
          <td class="Name">...</td>
        </tr>
        <tr>...</tr>
        Etc.

我使用此代码:

'Get APF Number from Pipe
xNr = "20819334"

'Search Number online
Dim i As Integer
i = 0
For Each Row In APFtable
    If i = 0 Then
        Set Member = Row.getElementsByTagName("th")
    Else
        Set Member = Row.getElementsByTagName("td")
    End If
    i = i + 1

    On Error Resume Next
    If xNr = Member(4).innerText Then

        'Check the corresponding checkbox 

        Exit For
    End If
Next Row

将我的例子中的数字xNr与表格中的数字进行比较。但我无法弄清楚如何检查框。

我试过这段代码:

Name = "ctl00$ContentPlaceHolderMainNoAjax$gvJumpRecordsList$ct" & 100 + i & "$chkSelect"
Set Check = IE.Document.GetElementsByName(Name)
If Not Check Is Nothing Then
    Check(0).Click
End If

结束我在其他论坛中找到的所有其他方式来使其工作,尽管这最接近工作。这意味着当我在变量中对名称进行硬编码而没有&#34;计算位置&#34;一部分。

有人可以就我的问题向我提出建议吗? 非常感谢

1 个答案:

答案 0 :(得分:0)

Member(4).parentElement.getElementsByTagName("input")(0).Click 

如果复选框是该行的第一个输入元素,则应该这样做。