2016-10-24 3 views
0

Ich versuche, Daten von http://www.dsebd.org/displayCompany.php?name=LINDEBD mithilfe von VBA-Code in Excel abrufen.Excel-VBA-Code zum Abrufen von Wert/Maltiple-Wert von der Website

versuchen, die follwing Daten zu erhalten, von dieser

Gesamtzahl der im Umlauf befindlichen Wertpapiere Links Sector Firmenname

mit versuchen,

Sub GetData() 
Set IE = CreateObject("InternetExplorer.Application") 
my_url = "http://www.dsebd.org/displayCompany.php?name=LINDEBD" 

With IE 
    .Visible = True 
    .navigate my_url 
    .Top = 50 
    .Left = 530 
    .Height = 400 
    .Width = 400 

Do Until Not IE.Busy And IE.readyState = 4 
    DoEvents 
Loop 

End With 

Application.Wait (Now() + TimeValue("00:00:016")) ' For internal page refresh or loading 

Set Results = IE.document.getElementsByTagName("table") 
For Each itm In Results 
    If itm.classname = "lgn" Then 
     dd = itm.getAttribute("href") 
     Exit For 
    End If 
    Next 
' if you wnat to click the link 
    itm.Click 
' otherwise 
    'Range("a1").Value = dd 
    MsgBox dd 
End Sub 

Ist es möglich, von sammeln Daten diese Seite

+0

Was läuft falsch mit dem Code, den Sie dort haben? –

+0

Laufzeitfehler 404, obejct erforderlich. Ich denke etwas falsch hier, Wenn itm.classname = "lgn" Dann dd = itm.getAttribute ("href") –

+0

Kommentieren 'itm.Click' stoppt den Fehler, aber' dd' ist 'NULL' am Ende, da der Code keinen 'Klassennamen' von' lgn' finden kann, kann –

Antwort

0

Zuerst müssen Sie die Tabelle (Tabelle) durchlaufen, dann iterieren Sie die Zeilen (t r), dann iterieren Sie die Zellen (td). Dies sind keine Links auf dieser Seite.

Hinweis: Im Folgenden erhalten Sie den Wert, den Sie suchen, aber dieser Code unterliegt ständigen Änderungen, wenn sich die Website ändert.

Sub GetData() 
    Set IE = CreateObject("InternetExplorer.Application") 
    my_url = "http://www.dsebd.org/displayCompany.php?name=LINDEBD" 

    With IE 
     .Visible = True 
     .navigate my_url 
     .Top = 50 
     .Left = 530 
     .Height = 400 
     .Width = 400 

    Do Until Not IE.Busy And IE.readyState = 4 
     DoEvents 
    Loop 

    End With 

    Application.Wait (Now() + TimeValue("00:00:016")) ' For internal page refresh or loading 

    Set Results = IE.document.getElementsByTagName("table") 
    For Each itm In Results 
     Set rowAlt = IE.document.getElementsByClassName("alt") 
     For Each itmTR In rowAlt 
      Set tdValues = itmTR.getElementsByTagName("td") 
      If tdValues.Item(0).innerText = "Total No. of Outstanding Securities" Then 
       MsgBox tdValues.Item(1).innerText 'the value you seek 
       Exit Sub 'don't continue this loop 
      End If 
     Next 
    Next 
End Sub 
Verwandte Themen