这是网站页面中某列的屏幕截图。
它以这种方式位于网站页面中:
如您所见,所有行都有一个“已完成”按钮,您可以按此按钮,然后按几行。这些行引用导出。因此,该列不是静态的,并且一直在变化。
但是,每次我运行宏时,我都想访问该列的第一行。
以下是上面的屏幕快照中第一个“已完成”按钮的HTML代码的示例代码:
我有很多具有相同班级名称的人。以高亮显示的行为例,如下图所示:
我真的不知道如何编写VBA代码来始终访问此列中的第一个“已完成”字节。
PS:在HTML代码中,标记“ a”中的onclick =“ .....”在不断变化。因此,我不能将其用作访问所需字段并单击所需按钮的参数。
请任何人帮助我弄清楚该怎么做,我真的很高兴。
谢谢:)
答案 0 :(得分:0)
<tr>
标签是行,<td>
标签是这些行内的单元格。您没有提供足够的代码来显示整个表,但是通常来说,要访问表的第一行,您需要引用集合对象并使用所需的索引号。
.getElementsByTagName("tr")(0)
这将引用表的第一行。与在表格的第一行中获取第一列 相同:
.getElementsByTagName("tr")(0).getElementsByTagName("td")(0)
一旦您找到了特定的单元格,现在您想要单击链接。您可以使用与上述相同的方法。
.getElementsByTagName("tr")(0).getElementsByTagName("td")(0).getElementsByTagName("a")(0).Click
最后要注意的是,表的第一行可能是标题,因此您实际上可能需要第二行(1)
。
感谢您使用更多的HTML代码进行更新。我将略微切换齿轮,并使用querySelector()
来抢占主桌。
doc.querySelector("#divPage > table.advancedSearch_table > tbody"). _
getElementsByTagName("tr")(3).getElementsByTagName("td")(3).Children(0).Click
看看这是否适合您。
答案 1 :(得分:0)
如果要单击第一列中的“完成”按钮,则可以使用以下代码:
Set doc = objIE.Document
doc.getElementsByTagName("tr")(0).getElementsByTagName("td")(0).getElementsByTagName("a")(0).Click
代码在其中获得第一个<tr>
,然后得到第一个<td>
,然后得到<a>
。