2012-01-11 14 views
-1

當此宏運行時,出現「對象變量或塊變量未設置」的錯誤。突出顯示的要調試的行是來自底部的第二行 - 「estimate.Click」。當我將鼠標懸停在下一行的「設置估計值」上時,它會顯示「估計值=無」。 「estimate.submit」的行爲方式相同。網頁上的相應按鈕從不被點擊。所有這些代碼的其餘部分運行良好。vba自動化在Internet Explorer中 - 單擊連續網頁上的不同按鈕不起作用?

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

請留下一個問題:忽視那些試圖幫助你的人是不禮貌的。如果某人(在這種情況下,我)在對其中一個問題的評論中提出建議,請嘗試一下,然後在該問題中回覆*,或者更新您的問題以反映您嘗試的更改。這讓後來的其他人能夠更容易地跟隨進展到最終答案。 – 2012-01-11 21:00:54

+0

http://stackoverflow.com/questions/8816557/vba-access-remote-website-automate-clicking-submit-after-already-automating-cli – 2012-01-11 21:49:31

回答

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 

還可以有在網頁上的其他功能或連接到需要被稱爲以及其它元件(可能包括某種頁面卸載功能),因此您必須查看該窗口的代碼才能確定。

當我發現這一點後,下面這些步驟對我來說一直很成功。

相關問題