2015-05-06 10 views
5

Çalışmak için Excel'de bir form gönderimini otomatikleştirmeye çalışıyorum ve Temel bilgilerle ilgili sorun yaşıyorum. Ben hata mesajı almaya devam: olduğu gibi kod ileExcel VBA "IWebBrowser2" nesnesinin 'Yöntem' Belgesi 'başarısız oldu "

"Method 'Document' of object 'IWebBrowser2' failed"

ve ben bekleme kontrol altında Veya parçasını eklerseniz, ben

"Automation Error The object invoked has disconnected from its clients."

emin değilim hatayı ne elde etmek Burada, çözümler için her yeri aradım. Bu kod sonunda bundan daha fazlasını yapmak için tasarlanmıştır, ancak ilk denemede getElementsByTagName başarısız oluyor.

Sub GoToWebsiteTest() 
Dim appIE As Object 'Internet Explorer 
Set appIE = Nothing 
Dim objElement As Object 
Dim objCollection As Object 

If appIE Is Nothing Then Set appIE = CreateObject("InternetExplorer.Application") 
sURL = *link* 
With appIE 
    .Visible = True 
    .Navigate sURL 
End With 

Do While appIE.Busy ' Or appIE.ReadyState <> 4 
    DoEvents 
Loop 

Set objCollection = appIE.Document.getElementsByTagName("input") 

Set appIE = Nothing 
End Sub 

cevap

6

Bu sorunu bir süre önce yaşadım. Internet Explorer'ı orta düzeyde bir bütünlük düzeyinde kullanın. InternetExplorer varsayılan olarak, işyerinde yerel bir intranet üzerinden yapıyorsanız, bazen yukarıda belirttiğiniz ikinci hata iletisini veren düşük bir bütünlük düzeyine geçer. Daha fazla bilgi için here'a tıklayın. Kodunuzu aşağıda değiştirdim. Eğer yardımcı olursa lütfen bana bildirin.

Sub GoToWebsiteTest() 
Dim appIE As InternetExplorerMedium 
'Set appIE = Nothing 
Dim objElement As Object 
Dim objCollection As Object 

Set appIE = New InternetExplorerMedium 
sURL = "http://example.com" 
With appIE 
    .Navigate sURL 
    .Visible = True 
End With 

Do While appIE.Busy Or appIE.ReadyState <> 4 
    DoEvents 
Loop 

Set objCollection = appIE.Document.getElementsByTagName("input") 

Set appIE = Nothing 
End Sub 

Microsoft Internet Kontrolleri için başvurular hatırla ve daha benzer bir şekilde

+0

Cevabınız için çok teşekkürler, şimdi çalışıyor! (en azından, bundan sonra başka bir soruna vurarak: /) –

0

tam kod yukarıdaki ile aynı değil ama Microsoft HTML Nesne Kitaplığı yapmayı planladıkları şeye bağlı olarak, aşağıdaki kod, sorunumu çözdü:

Do 
Loop Until ie.readystate = 3 
Do 
Loop Until ie.readystate = 4 

Sadece içeriğiyle çalışmaya başlamak istediğiniz satırın önüne koyun. 'Görev yöneticisi' aracılığıyla tüm kaşif örneklerini kapatın ve işe yarayacak kod çalıştırmayı denediğinizde : o aşağıdaki yöntem bu hata için benim sorun çözüldü here

0

kontrol edebilirsiniz çalışır hakkında daha fazla bilgi almak için.