2017-06-21 6 views
0

問題:Excelから情報をコピーしてWebページに貼り付け、プッシュボタンを押してみようとしています。最終的には、PDFをフォルダに印刷させるために、これをすべて取得する必要があります。私は以下のコードを試しましたが、なぜそれが動作していないのか完全にわかりません。 Googleが解決しなかったExcel VBAを使用してIEでナビゲートするIDで

ウェブサイト:https://www.easymapmaker.com/advanced

未遂コード:へ

Set Address = IE.Document.getElementsByID("sourceData") 
Address.Value = AddressGrid 

IE.Document.getElementByID("sourceData").Value = AddressGrid 

Sub MapMacro() 

    AddressGrid = Range("A1").Value 

    Set IE = CreateObject("InternetExplorer.Application") 
    WebSite = "https://www.easymapmaker.com/advanced" 
    With IE 
     .Visible = True 
     .navigate WebSite 

    Do While IE.Busy Or IE.readyState <> 4 
     DoEvents 
    Loop 
    On Error Resume Next 'This is here in case fields cant be found. 

    Set Address = IE.Document.getElementsByID("sourceData") 
    Address.Value = AddressGrid 


    Set Element = IE.Document.getElementsByID("optionButton") 
    Element.Click 

    Do While IE.Busy Or IE.readyState <> 4 
     DoEvents 
    Loop 
    End With 

End Sub 
+0

あなたが上でクリックし、パッケージとして送信されているかを確認する方が簡単な場合がありボタン、例えばPOSTまたはGETリクエスト。 IEエクスプローラのインスタンスを作成する代わりに、すべてのHTML要素をロードせずに接続を作成してデータを送信できます。 IEでF12を使用してトラフィックを監視し、エミュレートしますか?また、「待機中」のサイクルを行う必要がなく、要求が非同期で送信され、有効な応答が得られたときにコードが実行されることを意味します。 – jamheadart

+0

私はボタンを動作させました。私は、Adobe PDFの要件のためにこれのためにIEオブジェクトを使用する必要があります。情報をコピーする必要がある場所のIDが間違っていますか? – Shawn007

+0

それは正しく見える、あなたは上記の1つを試しましたか?displayTable – jamheadart

答えて

0

明確にするために、私はラインを変更することで、この作業を得ました、sinc 「:D4 A1は、」あ​​なたがこの方法を試みることができる:E AddressGridは一つだけのセルを参照しているが、あなたは範囲をしたい、と言う

Dim clipTXT As MSForms.DataObject 
Range("A1:D4").Copy 

Set clipTXT = New MSForms.DataObject 
    clipTXT.GetFromClipboard 
IE.Document.getElementByID("sourceData").Value = clipTXT.GetTxt 
+0

範囲をコピーしてみてください:' Range( "A1:D4" ).Copy'を実行し、 'AddressGrid'を使用する代わりに、クリップボードから直接" sourceData "要素にデータを取得することができます。私は私の答えを編集します。助けてくださいupvoteしてください! – jamheadart

関連する問題