2016-06-15 3 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、onclickなしでIEのリンクをクリックするにはどうすればいいですか?

<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の によって生成され、[OK]をクリックします "ですclass = "clickspan" "" tbody "のデータを削る前に。 execScriptgetElementsByClassName("").click()を試しましたが、動作しませんでした。誰かがdocument.querySelector()とdispatchEvent(clickEvent)を使用するよう教えてくれましたが、動作しませんでした。

+1

できるだけ英語で投稿してください。質問を明確に記載してください。 – Li357

+0

これを一度読んでください... http://stackoverflow.com/help/how-to-ask – Sankar

+0

3つの票落ち??この質問は具体的で合法です。それらの中国語文字は無関係です!! – 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

関連する問題