0

Mein VBA-Wissen ist begrenzt und ich versuche nur schwer zu lernen, aber ich stehe mit dem folgenden Code fest. Mein Problem ist, dass ich versuche, die Ergebnistabelle auf dieser Webseite zu extrahieren, die in der Tabellenklasse "Standard_tabelle" enthalten ist.XMLHTTP Datenextrakt in Excel - nicht in der Lage, die korrekten Daten zu extrahieren

Sub seasonres() 

Sheets("Vs").Select 
Range("A1").Select 
Dim url As String, links_count As Integer 
Dim i As Integer, j As Integer, row As Integer 
Dim XMLHTTP As Object, html As Object 
Dim tr_coll As Object, tr As Object 
Dim td_coll As Object, td As Object 

    url = "http://www.worldfootball.net/teams/manchester-united/2011/3/" 

    Set XMLHTTP = CreateObject("MSXML2.XMLHTTP") 
    XMLHTTP.Open "GET", url, False 
    XMLHTTP.send 

    Set html = CreateObject("htmlfile") 
    html.body.innerHTML = XMLHTTP.ResponseText 

    Set tbl = html.getelementsbytagname("Standard_tabelle") 

    Set tr_coll = tbl(0).getelementsbytagname("TR") 

    For Each tr In tr_coll 
     j = 1 
     Set td_col = tr.getelementsbytagname("TD") 

     For Each td In td_col 
      Cells(row + 1, j).Value = td.innerText 
      j = j + 1 
     Next 
     row = row + 1 
    Next 
End Sub 

aber der Code unten hält mir geben einen Laufzeitfehler und wenn ich es Punkte debuggen:

Set tr_coll = tbl(0).getelementsbytagname("TR") 

Gibt es jemanden, der mir diesen Code korrigieren kann helfen, die Tabelle oder Show zu extrahieren mir einen anderen Code, der dabei helfen würde?

Vielen Dank im Voraus. Shahid

+0

'Set tbl = html.getelementsbyclassname ("Standard_tabelle")' –

+0

@TimWilliams - Danke für die offensichtliche Veränderung. Ich habe das versucht, aber es gibt mir einen Laufzeitfehler '438' "Objekt unterstützt diese Eigenschaft oder Methode nicht". Ich bin mir nicht sicher, ob es besagt, dass die xmlhttprequest getelementsbyclassname nicht verwenden kann? –

+0

@TimWilliams - perfekt, das hat super funktioniert !! Danke vielmals! –

Antwort

0

Ich denke, vielleicht htmlfile nicht getElementsByclassname unterstützt ...

Versuchen Sie, diese Behelfslösung

Sub seasonres() 

    Dim url As String, links_count As Integer 
    Dim i As Integer, j As Integer, row As Integer 
    Dim XMLHTTP As Object, html As Object 
    Dim tr_coll As Object, tr As Object 
    Dim td_coll As Object, td As Object, tbl, td_col, objT 

    url = "http://www.worldfootball.net/teams/manchester-united/2011/3/" 

    Set XMLHTTP = CreateObject("MSXML2.XMLHTTP") 
    XMLHTTP.Open "GET", url, False 
    XMLHTTP.send 

    Set html = CreateObject("htmlfile") 
    html.body.innerHTML = XMLHTTP.ResponseText 

    Set tbl = html.body.getelementsbytagname("table") 

    For Each t In tbl 
     If t.classname = "standard_tabelle" Then 
      For Each tr In t.getelementsbytagname("TR") 
       j = 1 
       For Each td In tr.getelementsbytagname("TD") 
        Cells(row + 1, j).Value = td.innerText 
        j = j + 1 
       Next 
       row = row + 1 
      Next 
      row = row + 3 
     End If 
    Next 


End Sub 
Verwandte Themen