2015-06-16 109 views
-2
Set myIE = New InternetExplorer 
    myIE.Silent = True 
    myIE.navigate sURL 
    myIE.Visible = False 

    Do While myIE.Busy 
     Do Until myIE.ReadyState = READYSTATE_COMPLETE 
     Loop 
    Loop 
    Application.Wait (Now() + TimeValue("00:00:02")) 
    Set HTMLDoc = myIE.document 
    HTMLDoc.getElementById("loginID").Value = ICUSER 
    HTMLDoc.getElementById("password").Value = ICPASS 
For Each oHTML_Element In HTMLDoc.getElementsByTagName("input") 
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For 
Next 
    Application.Wait (Now() + TimeValue("00:00:02")) 
    ' Read and Write Data to the reports 
    Application.DisplayAlerts = False 
End Sub 

我一直在使用這段代碼,它在我的計算機上工作得很好,但是當我與其他人共享文件時,某些計算機無法運行代碼並出現此錯誤。任何人都知道這個問題的解決方案,請幫助。VBA編譯錯誤什麼原因和解決方案?

+0

其他計算機是否運行不同版本的Excel? – Paradox

+0

另一臺電腦運行相同的excel版本,我也檢查了vba參考,並發現相同。 – Bunny

+0

您是否檢查過(工具>參考文獻...)代碼中提到的參考文件是否設置了? – Paradox

回答

2

我最好的猜測是,在Internet Explorer的版本中有一個不同。當面對VBA中不同計算機之間的版本問題時,您可以使用工具>>參考切換到延遲綁定。

使用後期綁定這裏從

Set myIE = New InternetExplorer 

更改您的代碼:

Set myIE = CreateObject("InternetExplorer.Application") 

現在,只要在另一臺計算機安裝了Internet Explorer的任何版本,這個代碼將工作。

+0

非常感謝JNevill! 完美的作品! – Bunny

0

檢查代碼中提到的參考是否設置了窗口(Tools> References ...)。如果這不起作用,最後的辦法是更改引用順序(vb窗口中的工具菜單)。不幸的是,它只是試錯。

相關問題