VBA吃的记忆..无法清除资源

时间:2016-01-05 14:12:42

标签: vba excel-vba xmlhttprequest excel

我正在使用xmlHTTP处理VBA代码,我有一个问题,我无法弄清楚它的原因..

问题是:

当循环运行时,它不断消耗越来越多的内存,所以我试图找到导致这个问题的部分,我想出了这个部分:

For i = 1 To 100
    url = "https://www.google.co.in/search?q=" & "hello" & "&rnd=" & WorksheetFunction.RandBetween(1, 10000)
    Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
    XMLHTTP.Open "GET", url, False
    XMLHTTP.setRequestHeader "Content-Type", "text/xml"
    XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
    XMLHTTP.send
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = XMLHTTP.responsetext
    DoEvents
Next i

我尝试了所有我能想到的东西(尝试将对象设置为无效 - 在循环外部 - 并试图从'for循环'中保存excel文件)但我无法解决问题。 我尝试了以下3行,他们修复任何内容:

    XMLHTTP.abort
    Set XMLHTTP = Nothing
    Set html = Nothing

注意#1:即使这11行代码是唯一要执行的代码,也会出现问题!

注意#2:即使程序完成,内存也不会被释放!

在程序运行时附上内存使用情况的屏幕截图: enter image description here

请指教..谢谢

1 个答案:

答案 0 :(得分:0)

Benoit上述问题的解决方案本周早些时候开始向Office 2016客户推出。如果您还没有更新,请转到文件> 帐户> 更新选项> 立即更新

办公室团队的Anneliese