2016-05-17 7 views
-1

Hallo Ich fand den folgenden Code auch hier ... Aber das Ergebnis alle Links in Blatt kopieren .... Was, wenn ich nur die URL von bestimmten kopieren möchte Linkname? Bitte helfen Sie mir Code. Zum Beispiel mit unterem Code ... Ich möchte die URL von diesem Link-Namen "Erste Schritte mit Excel VBA - I Programmer". Sollte eine URL in Zelle A1 "http://www.i-programmer.info/ebooks/automating-excel/1264-getting-started.html" ergeben Siehe auch das Bild ... Vielen Dank im Voraus !!!Holen Sie sich die spezifische URL von der Website Link-Name (mit VBA)

Sub webpage() 

    Dim internet As Object 
    Dim internetdata As Object 
    Dim div_result As Object 
    Dim header_links As Object 
    Dim link As Object 
    Dim URL As String 

    Set internet = CreateObject("InternetExplorer.Application") 
    internet.Visible = True 

    URL = "https://www.google.co.in/search?q=how+to+program+in+vba" 
    internet.Navigate URL 

    Do Until internet.ReadyState >= 4 
     DoEvents 
    Loop 

    Application.Wait Now + TimeSerial(0, 0, 5) 

    Set internetdata = internet.Document 
    Set div_result = internetdata.getelementbyid("res") 


    Set header_links = div_result.getelementsbytagname("h3") 

    For Each h In header_links 
     Set link = h.ChildNodes.Item(0) 
     Cells(Range("A" & Rows.Count).End(xlUp).Row + 1, 1) = link.href 
    Next 

    MsgBox "done" 
End Sub 

enter image description here

Antwort

0

Sie können den Wert von innerText Eigenschaft überprüfen, bevor Sie die URL in dem Arbeitsblatt Hinzufügen

For Each h In header_links 
    If h.innerText = "Getting started with Excel VBA - I Programmer" Then 
     Set link = h.ChildNodes.Item(0) 
     Cells(Range("A" & Rows.Count).End(xlUp).Row + 1, 1) = link.href 
    End If 
Next 
+0

Oh, es ist Arbeit ... aber wenn ich zu meinem wirklich Projekt anwenden es doesn‘ t arbeiten. Ich änderte die URL in 'URL =" http://iweb.mywork.com/location/place/en-US/OnD/DR/DR%20Form/Pages/default.aspx "' Run-Time-Fehler Automatisierungsfehler , Das aufgerufene Objekt hat die Verbindung zu seinem Client getrennt ... als ich auf debug geklickt habe, habe ich diese Zeile gelb markiert -> 'Do Internet.readyState> = 4' ... bitte Hilfe ... danke – 200yrs

+0

Ich habe die Lösung gefunden für den Time-Out-Fehler ... Do-Schleife eingefügt..Ich verwendete während Wend .... Aber ich habe nächstes Problem ... im Debug-Modus, der Pfeil zeigt diese Zeile -> Set Internetdata = Internet.Document ... bitte helfen – 200yrs

Verwandte Themen