通过vba将网站表中的数据导入excel

时间:2018-05-28 12:32:30

标签: excel vba web

我试图从网站上获取信息并使用此代码成功获取此信息:

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吗?

1 个答案:

答案 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