2016-06-15 4 views
-2
Sub sales_ann() 

Dim objIE As InternetExplorer 
Dim ele As Object 
Dim y As Integer 
Set objIE = New InternetExplorer 
objIE.Visible = True 

    objIE.navigate "http://data.eastmoney.com/bbsj/201603/yjyg.html" 
    Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop 


    For Each ele In objIE.Document.getElementsByTagName("tbody") 

    Debug.Print ele.textContent 

    y = 2 
    For i = 0 To 49 
    Sheets("sale_ann").Range("A" & y).Value = ele.Children(i).Children(0).textContent 
    Sheets("sale_ann").Range("B" & y).Value = ele.Children(i).Children(1).textContent 
    Sheets("sale_ann").Range("C" & y).Value = ele.Children(i).Children(2).textContent 
    Sheets("sale_ann").Range("D" & y).Value = ele.Children(i).Children(3).textContent 
    Sheets("sale_ann").Range("E" & y).Value = ele.Children(i).Children(4).textContent 

    y = y + 1 
    Next i 

Next 

objIE.Quit 
Set IE = Nothing 

End Sub 

Schritt 1:Wie vba zu verwenden, um Link in IE ohne href, onclick klicken?

<li class="at2" data="0">业绩预告<i></i></li> 
<li data="1" class="">业绩预增<i></i></li> 
<li data="2" class="">业绩预减<i></i></li> 
<li data="3" id="fpygTab" class="">分配预告<i></i></li> 

Schritt 2:

<span class="clickspan">业绩变动幅度</span> 

, was ich tun möchte, ist die Schaltfläche "data =" 1 "", die von Javascript erzeugt und dann auf " class = "clickspan" "bevor ich Daten in" tbody "schabe". Ich habe versucht execScript und getElementsByClassName("").click(), aber es hat nicht funktioniert.Einige sagen mir, document.querySelector() und dispatchEvent (clickEvent) zu verwenden, aber nicht funktioniert zu.was soll ich tun?

+1

Bitte posten Sie in Englisch, wenn alles möglich ist und bitte fügen Sie klarere Details, die die Frage eindeutig angeben. – Li357

+0

Lesen Sie dieses einmal ... http://StackOverflow.com/Help/how-to-ask – Sankar

+0

Drei Down-Stimmen ?? Diese Frage ist spezifisch und legitim. Diese chinesischen Schriftzeichen sind irrelevant !! – Rosetta

Antwort

0

Der einfachste Weg, dies zu tun ist wahrscheinlich mit document.querySelector() und dispatchEvent().

var clickEvent = new MouseEvent('click', { 
    'view': window, 
    'bubbles': true, 
    'cancelable': true 
}); 
document.querySelector('li[data="1"]').dispatchEvent(clickEvent); 
document.querySelector('span.clickspan').dispatchEvent(clickEvent); 
+0

Vielen Dank für Ihre Antwort, aber es kann nicht in meinem Code arbeiten.Kannst du konkret gehen? – Henry

+0

Sorry, deine Frage wurde sehr unterschiedlich geschrieben, als ich sie beantwortete. Ich weiß nicht, wie ich deine Frage beantworten soll, wie sie jetzt formuliert ist. – dave

Verwandte Themen