2012-01-11 19 views
-1

このマクロを実行すると、「オブジェクト変数またはブロック変数が設定されていません」というエラーが表示されます。デバッグするハイライトされた行は、下から2番目の「estimate.Click」です。次の行の「Set estimate」にマウスを合わせると、「estimate = Nothing」と表示されます。 "estimate.submit"は同じように動作します。 Webページ上の対応するボタンは決してクリックされません。このコードの残りの部分はうまくいきます。Internet Explorerのvba自動化 - 連続したWebページの異なるボタンをクリックしても機能しない?

Sub btn_version() 

Dim ieApp As Object 
Dim ieDoc As Object 
Dim ieForm As Object 
Dim ieObj As Object 
Dim URL As String 
Dim estimate As Object 

URL = "http://www.craft-e-corner.com/p-2688-new-testament-cricut-cartridge.aspx" 
Set ieApp = CreateObject("InternetExplorer.Application") 
ieApp.Visible = True 
ieApp.navigate URL 
While ieApp.Busy Or ieApp.readyState <> 4: DoEvents: Wend 

Set ieDoc = ieApp.document 
Set ieForm = ieDoc.forms(1) 
For Each ieObj In ieForm.Elements 
If ieObj.ClassName = "AddToCartButton" Then 
ieObj.Click 
End If 
Next ieObj 

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
While ieApp.Busy Or ieApp.readyState <> 4: DoEvents: Wend 
Set estimate = ieApp.document.getElementById("btnRequestEstimates") 
estimate.Click 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 

End Sub 
+0

1つの質問に気をつけてください:あなたを助けようとしている人を無視するのは丁寧ではありません。誰か(この場合は私)があなたの質問の1つにコメントをして、それを試してから、*その質問の別のコメント*で答えてください。それは後で一緒に来る誰かが最終的な答えへの進展に従うことをずっと容易にします。 –

+0

http://stackoverflow.com/questions/8816557/vba-access-remote-website-automate-clicking-submit-after-already-automating-cli –

答えて

1

これは完全に関連しているかどうかはわかりませんが、VBAの自動化を使用したJSエラーで同様の問題がありました。私が成功したことは、このアクションを手動で実行することによって呼び出される各JS関数がコードを使用して引き続きトリガーされることを確認することでした。例えば

、このボタンを与えられた:

<BUTTON id=btnExample onfocus="return focusFunction(this);" onclick="return clickFunction(this);" name=btnExample> 

VBAを呼び出すために:

Set objButton = IE.Document.getElementByID("btnExample") 
    objButton.onfocus 
    objButton.onclick 

もあり、ページ上の他の機能であるかのようにも呼び出される必要がある他の要素にアタッチします(これにはある種のページアンロード機能が含まれている可能性があるため)、そのウィンドウのコードを調べて確かめる必要があります。

私がこれを発見した後、これらの手順は常に私にとって成功しています。

関連する問題