簡體   English   中英

VBA中的InternetExplorer與MSHTML2.XMLHTTP60

[英]InternetExplorer vs MSHTML2.XMLHTTP60 in VBA

我在嘗試控制VBA形式的IE時遇到了這種易怒的IE綜合症。 我打算打開一個網站並查找特定文件(即XLS),然后下載。

我的代碼:

Dim IE as InternetExplorer  ' I could also use "Object" here
Dim HTMLDoc as HTMLDocument
Dim OHTML_Element as IHTMLElement

Set IE = New InternetExplorer  ' I could also use "InternetExplorerMedium" here
IE.Silent = True
IE.Navigate (sURL)
IE.Visible = True

Set HTMLDoc = IE.document
mimtype = "Microsoft Office Excel 97-2003 Worksheet"
For Each oHTML_Element In HTMLDoc.Links
    If InStr(oHTML_Element.mimeType, mimtype) Then
        If InStr(oHTML_Element.href, FileType) Then
            ' Get the SOURCE file and DESTINATION files
            SRCfile = mainURL & oHTML_Element.pathname
            FileName = DESTPath & oHTML_Element.nameProp
            'Download the file
            ret = URLDownloadToFile(0, SRCfile, FileName, 0, 0)
            'See if the download happened correctly
            If ret = 0 Then
                'all went well
                GetFile = True
            Else
                MsgBox "There was a problem downloading the file.", vbCritical, "DOWNLOADING ERROR!"
                GetFile = False
                Exit Function
            End If
            Exit For
        End If
    End If
Next oHTML_Element

現在,這似乎在過去幾個月中一直很穩定。 從過去的兩天開始,系統在IE.navigate(sURL之后掛起。在調試模式下,我可以清楚地看到已創建的IE對象的所有字段,但是在執行IE.navigate(sURL)之后,該對象的所有字段消失了,但是該網站確實可以正常打開。但是,此問題不是很“一致”,因此它可能消失或消失,因此很煩人!這個“消失”的字段很危險,因為在前面我有一個if條件來檢查這些字段是否為空,如果為True退出。

只是一點點背景,我使用的是Win 7,IE 11(昨天在​​IE 10上出現此問題之后,昨天進行了升級,之前它與IE 10一起工作了幾個月)

拖曳WWW后,似乎有些人在遇到此問題。 關於Stackoverflow的解決方案建議使用MSHTML.XMLHTTP60 所以,我嘗試了

Dim IE as MSHTML2.XMLHTTP60
Dim HTMLDoc as MSHTML.HTMLDocument
Dim HTMLBod as 

Set IE = new MSHTML2.XMLHTTP60
IE.open "Get", sURL, False
IE.send

Set HTMLDoc = new MSHTML.HTMLDocument
HTMLDoc.body.innerHtml  = IE.responseText

???? How do I proceed further to "search" for a XLS file and gets its "href" link?

我嘗試查看HTMLDoc (使用MSHTML)和HTMLDoc (使用InternetExplorer)中的數據(通過“監視窗口”),數據似乎並不相同。 因此,我之前的“搜索mime類型和href並下載”程序將無法正常工作。

如果有人可以提供一些幫助,我將不勝感激。 我正在尋找一種解決方案,該解決方案可以幫助我糾正InternetExplorer的不一致行為,也可以使用MSHTML2解決方案

好吧...經過48個小時的苦苦掙扎並拖網瀏覽,沒有找到任何可以解決我dim IE as InternetExplorer類型對象問題)的東西,我“終於” IE.Navigate(url)解決了IE.Navigate(url)崩潰問題。

該錯誤似乎是由於IE瀏覽器中的某些“錯誤”設置而發生的,您可能自己更改了該設置,或者某些加載項,或者某些其他操作可能更改了這些設置。 萬能的“ RESET”來搶救! IE的“ Internet選項”對話框中有一個“重置”按鈕,此操作將IE重置為標准設置,並且在執行此操作后所有問題均消失了!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM