我运行程序时HTTP请求冻结,但是当我介入时不会冻结

时间:2015-11-13 10:44:11

标签: excel vba excel-vba http

程序从excel工作簿运行,获取值列表,构建查询字符串并将其传递给此代码块

Set xmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
xmlHttp.Open "GET", connectionstring, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send

Dim html As Object
Set html = CreateObject("htmlfile")
html.body.innerHTML = xmlHttp.ResponseText

这是循环的一部分,因此它会多次执行。 如果我逐步进入代码并逐行执行它没有问题,但是当我运行它时它冻结在xmlHttp.send行上,而不是在第一个循环中,而是在循环中间的某个地方(大约在第10次执行时)也许)。 我是否必须告诉它等待特别是如此? 有任何想法吗? 感谢

1 个答案:

答案 0 :(得分:1)

XMLHTTP has a ReadyState property like IE

所以这是如何使用它:

xmlHttp.send
Do While xmlHttp.readyState <> 4
    DoEvents
Loop