我试图操纵Internet Explorer中,企业内部网内,用Excel VBA中,从Excel以便将数据输入到网页中的相应数据字段。为了使数据字段可用,必须勾选复选框。最初,当从没有说已经进入到这些的任何数据,我认为命名机械师一直checkBoxSum6第一行有各行之间的七个区间。输入数据后,这不再是这种情况。查找HTML标签的每个实例只有部分名称
我现在需要找到一种方式来阅读整个文档为每个checkBoxSum [X]的项目,点击它们,数字一片他们的名字存储到一个变量,可能是一个数组。我将存储它们以便使用它们来引用名为fVolumeEditSum [x]和fCommentsSumEdit [x]的输入框。
我已经通过线程如this看着。我也搜索的结果似乎接近这个解决方案堆栈,但一切我发现看起来返回给定参考的数据值,而不是引用本身的名称。
我已经通过这个问题学习网页的全部范围之前的迭代的码位是:
Option Explicit
Sub OpenWebPage()
Dim IE As InternetExplorerMedium
Dim x As Integer, n As Integer
Dim firstDate As Date, secondDate As Date
n = DateDiff("ww", firstDate, secondDate)
x = 6
Do While n > 0
IE.Document.all("checkBoxSum" & x).Click
n = n - 1
x = x + 7
Loop
End Sub
下面是HTML代码。它通过checkBoxSum的第二个实例运行。
<tr>
<td colspan="2">
<table cellpadding="0" cellspacing="0" border="0" class="dataTable" id="reportTable">
<thead>
<tr bgcolor="#E8E8E8">
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b></b></span></td><!-- First icon -->
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b></b></span></td><!-- Second icon -->
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Update</b></span></td>
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Date</b></span></td>
<td width="73" align="left" style="display: none"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Business</b></span></td>
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Volume</b></span></td>
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Lock</b></span></td>
<td width="73" align="left"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Comments </b></span></td>
<td width="73" align="left" style="display: none"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>Current</b></span></td>
<td width="73" align="left" style="display: none"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>ArrayRow</b></span></td>
<td width="73" align="left" style="display: none"><span style="text-align:center; font-size:12px; white-space: nowrap"><b>RowType</b></span></td>
</tr>
</thead>
<tbody>
<!-- Counter starts at 1 array at 0 -->
<!-- Counter starts at 1 array at 0 -->
<!-- Counter starts at 1 array at 0 -->
<!-- current_N -->
<tr style="display: none" class="main"></tr><tr id="mainRow20" class="main" myindex="20">
<td>
<div id="iconShowA20" class="ui-icon ui-icon-plusthick" onclick="showExpand('20','20')" ;=""></div>
<div id="iconShowB20" class="ui-icon ui-icon-minusthick" style="display: none" onclick="hideExpand('20','20')" ;=""></div>
</td>
<td align="left"></td><!-- Second icon -->
<td align="left">
<input type="checkbox" name="checkBoxSum20" id="checkBoxSum20" onclick="checkItWeek('20','20')" ;=""></td>
<td align="left"><div id="divWeekDTSum20"><b>10/12/2015</b></div></td>
<td align="left" style="display: none"></td>
<td align="left" style="display: none"><div id="divBusinessSum20">PL_LEGACY</div></td>
<td align="left" id="TDfVolumeSum20"><b>0</b></td>
<td align="left" id="TDfVolumeSumEdit20" style="display: none"><b><input type="text" class="allowedValues" id="fVolumeEditSum20" name="fVolumeEditSum20" value="0" onkeyup="fVolumeEditKeyUpSum(20)" ;="" size="5"> </b></td>
<td align="left">
<input type="checkbox" id="lockSum20" name="lockSum20" onclick="fVolumeEditKeyUpSum(20)" ;="">
</td>
<td id="TDfCommentsSum20" align="left"><b></b></td>
<td id="TDfCommentsSumEdit20" style="display: none" align="left"><input type="text" onkeyup="fVolumeEditKeyUpSum(20)" ;="" id="fCommentsSumEdit20" name="fCommentsSumEdit20"></td>
<td align="left" style="display: none"><b></b></td>
<td align="left" style="display: none"><input type="text" id="arrayStoreSum20" name="arrayStoreSum20" readonly="readonly"></td>
<td align="left" style="display: none"><div>MainSum</div></td>
</tr><tr class="expandableDay" id="rowShow2" style="display: none" bgcolor="#EBEEF2" title="Creator : LUSCHR
Create Date : 09/10/2015">
<td align="left"></td><!-- First icon -->
<td>
<div id="iconShowA_N2" class="ui-icon ui-icon-plusthick" onclick="showExpandSub('2','2')" ;=""></div>
<div id="iconShowB_N2" class="ui-icon ui-icon-minusthick" style="display: none" onclick="showExpandSub('2','2')" ;=""></div>
</td>
<td align="left">
<input type="checkbox" name="checkBox2" id="checkBox2" onclick="checkIt(2);">
</td>
<td bgcolor="#EBEEF2" align="left" style="display: none"><div id="divWeekDT2">10/12/2015</div></td>
<td bgcolor="#EBEEF2" align="left"><div id="divActivityDT2">10/12/2015</div></td>
<td bgcolor="#EBEEF2" align="left" style="display: none"><div id="divBusiness2">PL_LEGACY</div></td>
<td id="TDfVolume2" bgcolor="#EBEEF2" align="left">0</td>
<td id="TDfVolumeEdit2" style="display: none" bgcolor="#EBEEF2" align="left"><input type="text" class="allowedValues" onkeyup="fVolumeEditKeyUp(2)" ;="" name="fVolumeEdit2" id="fVolumeEdit2" size="5" value="0"> </td>
<td bgcolor="#EBEEF2" align="left"><div id="divLockFlag2">N</div></td>
<td id="TDfComments2" bgcolor="#EBEEF2" align="left"> </td>
<td id="TDfCommentsEdit2" style="display: none" bgcolor="#EBEEF2" align="left"><input type="text" onkeyup="fVolumeEditKeyUp(2)" ;="" id="fCommentsEdit2" name="fCommentsEdit2"></td>
<td bgcolor="#EBEEF2" align="left" style="display: none">Y</td>
<td bgcolor="#EBEEF2" align="left" style="display: none"><input type="text" id="arrayStoreRow2" name="arrayStoreRow2" readonly="readonly"></td>
<td bgcolor="#EBEEF2" align="left" style="display: none"><div>current_Y_N</div></td>
</tr><tr class="current_N" id="current_N1" ncnt="1" style="display: none" bgcolor="#F6F6F6" title="Creator : LUSCHR
Create Date : 09/10/2015">
<td align="left"></td><!-- First icon -->
<td align="left"></td><!-- Second icon -->
<td align="left"></td><!-- Checkbox -->
<td bgcolor="#F6F6F6" align="left" style="display: none"><div id="divWeekDT1">10/12/2015</div></td>
<td bgcolor="#F6F6F6" align="left"><div id="divActivityDT1">10/12/2015</div></td>
<td bgcolor="#F6F6F6" align="left" style="display: none"><div id="divBusiness1">PL_LEGACY</div></td>
<td id="TDfVolume1" bgcolor="#F6F6F6" align="left">.19</td>
<td id="TDfVolumeEdit1" style="display: none" bgcolor="#F6F6F6" align="left"><input type="text" class="allowedValues" onkeyup="fVolumeEditKeyUp(1)" ;="" name="fVolumeEdit1" id="fVolumeEdit1" size="5" value=".19"> </td>
<td bgcolor="#F6F6F6" align="left"><div id="divLockFlag1">N</div></td>
<td id="TDfComments1" bgcolor="#F6F6F6" align="left"> </td>
<td id="TDfCommentsEdit1" style="display: none" bgcolor="#EBEEF2" align="left"><input type="text" onkeyup="fVolumeEditKeyUp(1)" ;="" id="fCommentsEdit1" name="fCommentsEdit1"></td>
<td bgcolor="#F6F6F6" align="left" style="display: none">N</td>
<td bgcolor="#F6F6F6" align="left" style="display: none"><input type="text" id="arrayStoreRow1" name="arrayStoreRow1" readonly="readonly"></td>
<td bgcolor="#F6F6F6" align="left" style="display: none"><div>current_N</div></td>
</tr><tr class="current_N" id="current_N0" ncnt="0" style="display: none" bgcolor="#F6F6F6" title="Creator : ADMIN
Create Date : 12/06/2012">
<td align="left"></td><!-- First icon -->
<td align="left"></td><!-- Second icon -->
<td align="left"></td><!-- Checkbox -->
<td bgcolor="#F6F6F6" align="left" style="display: none"><div id="divWeekDT0">10/12/2015</div></td>
<td bgcolor="#F6F6F6" align="left"><div id="divActivityDT0">10/12/2015</div></td>
<td bgcolor="#F6F6F6" align="left" style="display: none"><div id="divBusiness0">PL_LEGACY</div></td>
<td id="TDfVolume0" bgcolor="#F6F6F6" align="left">0</td>
<td id="TDfVolumeEdit0" style="display: none" bgcolor="#F6F6F6" align="left"><input type="text" class="allowedValues" onkeyup="fVolumeEditKeyUp(0)" ;="" name="fVolumeEdit0" id="fVolumeEdit0" size="5" value="0"> </td>
<td bgcolor="#F6F6F6" align="left"><div id="divLockFlag0">N</div></td>
<td id="TDfComments0" bgcolor="#F6F6F6" align="left">place holder
</td>
<td id="TDfCommentsEdit0" style="display: none" bgcolor="#EBEEF2" align="left"><input type="text" onkeyup="fVolumeEditKeyUp(0)" ;="" id="fCommentsEdit0" name="fCommentsEdit0"></td>
<td bgcolor="#F6F6F6" align="left" style="display: none">N</td>
<td bgcolor="#F6F6F6" align="left" style="display: none"><input type="text" id="arrayStoreRow0" name="arrayStoreRow0" readonly="readonly"></td>
<td bgcolor="#F6F6F6" align="left" style="display: none"><div>current_N</div></td>
</tr>
<!-- current_N -->
<!-- Counter starts at 1 array at 0 -->
<!-- Counter starts at 1 array at 0 -->
<!-- Counter starts at 1 array at 0 -->
<!-- THERE ARE NO DUPLICATES FOR THIS DAY -->
<tr id="mainRow48" class="main" myindex="48">
<td>
<div id="iconShowA48" class="ui-icon ui-icon-plusthick" onclick="showExpand('6','48')" ;=""></div>
<div id="iconShowB48" class="ui-icon ui-icon-minusthick" style="display: none" onclick="hideExpand('6','48')" ;=""></div>
</td>
<td align="left"></td><!-- Second icon -->
<td align="left">
<input type="checkbox" name="checkBoxSum48" id="checkBoxSum48" onclick="checkItWeek('6','48')" ;=""></td>
<td align="left"><div id="divWeekDTSum48"><b>10/26/2015</b></div></td>
<td align="left" style="display: none"></td>
<td align="left" style="display: none"><div id="divBusinessSum48">PL_LEGACY</div></td>
<td align="left" id="TDfVolumeSum48"><b>0</b></td>
<td align="left" id="TDfVolumeSumEdit48" style="display: none"><b><input type="text" class="allowedValues" id="fVolumeEditSum48" name="fVolumeEditSum48" value="0" onkeyup="fVolumeEditKeyUpSum(48)" ;="" size="5"> </b></td>
<td align="left">
<input type="checkbox" id="lockSum48" name="lockSum48" onclick="fVolumeEditKeyUpSum(48)" ;="">
</td>
更新*我喜欢迭代的想法。在代码中,我计算了点击复选框的数量,它是Do While循环的一部分。是否可以使用On Error GoTo跳过第n - n - 1行,并增加x值?如果我能做到这一点,我应该能够完成整个任务。我的第一次尝试仍然发生运行时错误'91'。
Do While n > 0
On Error GoTo Iterate
IE.Document.all("checkBoxSum" & x).Click
n = n - 1
Iterate: x = x + 7
Loop
将有助于你的问题,包括从您正在使用的HTML页面的相关片段。 –
你可以一个接一个地迭代,直到'IE.Document.all'返回'Nothing'。 – acelent