0

VBA bilgim sınırlıdır ve öğrenmeye çalışıyorum ama aşağıdaki kodla sıkışıp kaldım. Benim sorunum, "Standard_tabelle" tablo sınıfında yer alan bu web sayfasındaki sonuç tablosunu çıkarmaya çalışıyorum.XMLHTTP Veri özetinde excel - doğru verileri ayıklayamıyor

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 

ancak aşağıda kod bana bir çalışma zamanı hatası vererek tutar ve hata ayıklama zaman işaret:

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

masayı veya gösteriyi ayıklamak için bu kodu düzeltmek yardım edebilecek biri var mı Bu konuda yardımcı olacak başka bir kod?

Şimdiden çok teşekkürler. Şahid

+0

bu-iş çevresinde 'Set tbl = html.getelementsbyclassname ("Standard_tabelle")' –

+0

@TimWilliams deneyin - Bariz değişim için teşekkürler. Bunu denedim ama bana bir Çalışma zamanı hatası veriyor '438' "Nesne bu özelliği veya yöntemi desteklemiyor". Xmlhttprequest'in getelementsbyclassname kullanamayacağını söylüyorum emin değilim? –

+0

@TimWilliams - mükemmel, bu harika çalıştı! Çok teşekkürler! –

cevap

0

Ben htmlfilegetElementsByclassname desteklemiyor belki ...

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