对基本问题表示歉意,但我只编写了大约一周的代码!
为了提供一些上下文,我有一个基本任务,我必须手动搜索并输入一个数字来检索一个人的资格和到期日期,每个人可能有多个。我设法编写了一个脚本,该脚本从我在本网站的 excel 电子表格上的资格编号列表中依次搜索每个人: https://www.bindt.org/Certification/pcn-certificate-verification/
然后,我的脚本当前单击每个资格旁边的更多信息以展开数据(坦率地说不确定是否需要这样做)。
我的问题是我不知道如何将数据提取回 excel,我还没有设法通过使用类名、抓取整个表格等来提取它。
是否可以在编写代码以获取数据方面获得一些帮助?
举个例子,如果你在你的网站上使用数字 213474,它会让你知道我需要抓住什么。
非常感谢! 汤姆
编辑 8/8/21
嗨,雷蒙德,
到目前为止我已经把我的代码放在下面,它全部落在: Set Table = IE.document.getElementByClassname("container")(1)
我确实有另一个问题,当我转到循环中的第二个人时,因为他们都有不同的资格编号,转到错误 10 似乎不起作用。
我的主要问题是无论我尝试获取结果是 tbody、tr 等,我似乎都找不到任何有效的组合。
Sub PCN()
Dim IE As Object
Dim lastrow As Integer
ThisWorkbook.Sheets("PCN").Range("A1").Select
lastrow = activeSheet.Cells.SpecialCells(xlCellTypelastCell).Row
Dim i As Integer
Dim rng As Range
Set rng = Application.Range("c2:C" & lastrow)
For i = 2 To lastrow
Debug.Print rng.Cells(RowIndex:=i,ColumnIndex:="c").Value
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://www.bindt.org/Certification/pcn-certificate-verification/pcn-verification-form"
Do While IE.Busy
Application.Wait DateAdd("s",1,Now)
Loop
IE.document.getElementById("txtNumber").Value = ThisWorkbook.Sheets("PCN").Range("C" & i).Value
Do While IE.Busy
Application.Wait DateAdd("s",Now)
Loop
IE.document.getElementById("submit").Click
On Error GoTo 10
IE.document.getElementById("certificate-link-1").Click
IE.document.getElementById("certificate-link-2").Click
IE.document.getElementById("certificate-link-3").Click
IE.document.getElementById("certificate-link-4").Click
IE.document.getElementById("certificate-link-5").Click
IE.document.getElementById("certificate-link-6").Click
IE.document.getElementById("certificate-link-7").Click
IE.document.getElementById("certificate-link-8").Click
IE.document.getElementById("certificate-link-9").Click
IE.document.getElementById("certificate-link-10").Click
IE.document.getElementById("certificate-link-11").Click
IE.document.getElementById("certificate-link-12").Click
IE.document.getElementById("certificate-link-13").Click
IE.document.getElementById("certificate-link-14").Click
IE.document.getElementById("certificate-link-15").Click
IE.document.getElementById("certificate-link-16").Click
IE.document.getElementById("certificate-link-17").Click
IE.document.getElementById("certificate-link-18").Click
IE.document.getElementById("certificate-link-19").Click
IE.document.getElementById("certificate-link-20").Click
IE.document.getElementById("certificate-link-21").Click
IE.document.getElementById("certificate-link-22").Click
10
Set Table = IE.document.getElementByClassname("container")(1)
Set tbody = Table.getElementsByTagName("tbody")(0)
trs = tbody.getElementsByTagName("tr")
Do While trs Is Nothing
DoEvents
Application.Wait Now + TimeValue("00:00:02")
trs = tbody.getElementsByTagName("tr")
Loop
Dim myvalue As String: myvalue = trs.Cells(3).innerText
IE.Quit
Next
End Sub