我正在使用下面的代碼來獲取表格,但它注意到有一個帶有資料的 按鈕并且沒有進入 excel,因為在單擊 按鈕后檢查資料顯示
請幫助獲取所有表格資料,包括 按鈕列
Sub get_table()
Dim ie As Object
Dim url As String
url = "https://www.screener.in/company/COFORGE/consolidated/"
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate url
Do While ie.Busy = True: DoEvents: Loop
Do Until ie.readyState = 4: DoEvents: Loop
Dim tbl As HTMLTable
Set tbl = ie.document.getElementsByTagName("table")(1)
Dim trcounter As Integer
Dim tdcounter As Integer
trcounter = 1
tdcounter = 1
thcounter = 1
Dim tr As HTMLTableRow
Dim td As HTMLTableCell
Dim th As HTMLTableRow
Dim mySH As Worksheet
Set mySH = ThisWorkbook.Sheets("sheet1")
' this for date
For Each th In tbl.getElementsByTagName("th")
mySH.Cells(tdcounter, thcounter).Value = th.innerText
thcounter = thcounter 1
Next th
' this for table data
For Each tr In tbl.getElementsByTagName("tr")
For Each td In tr.getElementsByTagName("td")
mySH.Cells(trcounter, tdcounter).Value = td.innerText
tdcounter = tdcounter 1
Next td
tdcounter = 1
trcounter = trcounter 1
Next tr
End Sub
uj5u.com熱心網友回復:
您可以先使用InStr 函式<td>檢查是否包含 按鈕,如果是,則單擊 按鈕。單擊表格中的所有 按鈕后,您可以讀取資料并將其寫入作業表中。
作業示例是這樣的:
Sub LOADIE()
Set ieA = CreateObject("InternetExplorer.Application")
ieA.Visible = True
ieA.navigate "https://www.screener.in/company/COFORGE/consolidated/"
Do Until ieA.readyState = 4
DoEvents
Loop
Set doc = ieA.document
Set tbl = doc.getElementsByTagName("table")(1)
trcounter = 1
tdcounter = 1
thcounter = 1
Dim tr As HTMLTableRow
Dim td As HTMLTableCell
Dim th As HTMLTableRow
Dim mySH As Worksheet
Set mySH = ThisWorkbook.Sheets("sheet1")
' this for date
For Each th In tbl.getElementsByTagName("th")
mySH.Cells(tdcounter, thcounter).Value = th.innerText
thcounter = thcounter 1
Next th
' this for clicking the button
For Each tr In tbl.getElementsByTagName("tr")
For Each td In tr.getElementsByTagName("td")
If InStr(td.innerHTML, "button") > 0 Then
td.getElementsByTagName("button")(0).Click
End If
Next td
tdcounter = 1
trcounter = trcounter 1
Next tr
' this for table data
trcounter = 1
For Each tr In tbl.getElementsByTagName("tr")
For Each td In tr.getElementsByTagName("td")
mySH.Cells(trcounter, tdcounter).Value = td.innerText
tdcounter = tdcounter 1
Next td
tdcounter = 1
trcounter = trcounter 1
Next tr
ieA.Quit
Set ieA = Nothing
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/419321.html
標籤:
