VBA HTTP请求需要10多秒

任何人都可以阐明为什么这段代码需要这么长时间才能加载? 我已经在浏览器中试过了,加载只需要大约4秒钟的时间。 有没有什么办法,我可以禁用在VBA网页抓图加载图像?

(请注意,等待是在send线,这需要超过10秒的加载,这在我的脑海里是过度的?)

 Sub FetchIndividualURL() Dim XMLHTTP as Object Dim HTMLdoc as Object Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP") URL = "http://www.gumtree.com.au/s-ad/lansvale/cars-vans-utes/2011-subaru-forester-x-grey-wagon/1106783884" With XMLHTTP .Open "GET", URL, False .setRequestHeader "Content-Type", "text/xml" .send Set HTMLdoc = CreateObject("HTMLFile") HTMLdoc.body.innerhtml = .responsetext End With End Sub 

Xmlhttprequest.send不加载图像,也不是js代码。 这将获取由url引用的资源的原始客户端代码。 在这个代码中没有什么可以优化的。

你可以做的是使请求asynchronous,并有事件处理程序来处理传入的数据。 您可以有多个Xmlhttprequest对象并行下载数据。

有一个很好的博客文章如何正确地在Excel中: http : //dailydoseofexcel.com/archives/2006/10/09/async-xmlhttp-calls/

它描述了如何进行asynchronous调用,如何以及为什么使用事件处理程序的包装类。

被接受的答案并不完全正确。

有更多的请求选项要考虑,这可以根据网站的效率差别很大,没有最快或最慢的。 有时候其中一个请求经常需要10秒钟,而另一个请求只需要2秒钟。

 Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0") Set http = CreateObject("WinHttp.WinHttpRequest.5.1")