株価の最終価格をExcelワークシートにコピーしようとしています。 Internet Explorerが開き、サイトに移動しますが、最後の価格はワークシートにコピーされません。 Debug.Print
element.innertextを追加して、何かがコピーされているかどうかを確認しましたが、直接のボックスには何も表示されません。Excel VBA IDで要素を取得
これは私がこれまで持っているものです。
Dim element As IHTMLElement
Dim elements As IHTMLElementCollection
Dim ie As New InternetExplorer
Dim html As HTMLDocument
my_page = "http://www.morningstar.com/stocks/XASX/COH/quote.html"
With ie
.Visible = TRUE
.Navigate my_page
Do While ie.readyState <> READYSTATE_COMPLETE
Loop
Set html = ie.document
Set element = html.getElementById("last-price-value")
Debug.Print element.innertext
Sheets("Sheet 1").Range("A2").Value = element.innertext
End With
IDで* last-price-value *に設定された要素のようなものは、コード内のページにありません。これを確認するには、Webブラウザでページを開き、Webツールを開いてコンソールに行き、 '' document.getElementByID( 'last-price-value') '' 'を実行することで確認できます。したがって、問題はセレクタであり、コードではありません。 – mTorres
ありがとうございます。私はこの要素の内側のテキストをコピーしようとしています:
あなたの問題は、要素がiframeの内側にあることです。あなたは直接それを参照することはできません、まず、iframeのドキュメントを取得する必要があります、その後、あなたが進むことができます。今、私はこれを行う方法がわからないが、それは難しいはずはありません、あなたは[ここで]開始することができます(http://stackoverflow.com/questions/1088544/javascript-get-element-from-within- an-iframe)。 – mTorres