我试图从网站上获取信息并使用此代码成功获取此信息:
Dim IE As New InternetExplorer
IE.Visible = False
IE.navigate "https://www.theconstructionindex.co.uk" & Range("URL_code").Value
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim doc As HTMLDocument
Set doc = IE.document
Dim sDD As String
sDD = doc.getElementsByTagName("TD")(1).innerText
Range("b2").Value = sDD
sDD = doc.getElementsByTagName("TD")(3).innerText
Range("b3").Value = sDD
sDD = doc.getElementsByTagName("TD")(5).innerText
Range("b4").Value = sDD
sDD = doc.getElementsByTagName("TD")(7).innerText
Range("b5").Value = sDD
sDD = doc.getElementsByTagName("TD")(9).innerText
Range("b6").Value = sDD
sDD = doc.getElementsByTagName("TD")(11).innerText
Range("b7").Value = sDD
问题在于每次按下按钮并运行代码都会降低计算机速度。我确定这是内存管理问题。任何人都可以建议如何在每次运行时释放此代码使用的RAM吗?
答案 0 :(得分:1)
可能您没有关闭Internet Explorer的实例。它们是不可见的(IE.Visible = False
),因此你看不到它们,但它们在那里,它们正在吃RAM。这是一个可能的解决方案:
TaskManager > Processes > InternetExplorer > Right Mouse Button > End Task
(或重新启动电脑),关闭所有InternetExplorer实例; IE
的每个实例。像这样:Sub TestMe()
Dim ie As New InternetExplorer
ie.Visible = False
'do something here
ie.Quit
End Sub