2016-06-15 35 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 

步驟1:如何使用vba在沒有href的情況下點擊IE中的鏈接,onclick?

<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> 

步驟2:

<span class="clickspan">業績變動幅度</span> 

我想要做什麼是點擊按鈕 「數據=」 1 「」,其由JavaScript 生成,然後點擊「 class =「clickspan」「之前我在」tbody「中抓取數據。 我試過execScriptgetElementsByClassName("").click(),但它沒有工作。有人告訴我使用document.querySelector()和dispatchEvent(clickEvent),但沒有工作。我該怎麼辦?

+1

如果可能,請用英文發表,並請包括更清楚地說明問題的明確細節。 – Li357

+0

閱讀一次... http://stackoverflow.com/help/how-to-ask – Sankar

+0

三倒票?這個問題是具體和合法的。那些漢字是無關緊要的! – Rosetta

回答

0

最簡單的方法是使用document.querySelector()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

感謝您的回覆,但它無法在我的代碼中工作。您可以專門去嗎? – Henry

+0

對不起,我回答時你的問題寫得很不一樣。我不知道如何回答你的問題,因爲它現在是措辭。 – dave

相關問題