【发布时间】:2021-05-08 22:17:14
【问题描述】:
我正在慢慢探索是否可以使用 VBA 编写一个宏,该宏将从 A 列中的关键字/代码列表中搜索网站并提取数据。目前,下面的代码仅使用(“A1”)中的范围搜索所需的网站,但确实使用我希望提取的数据到达正确的页面。在这种情况下,a1 中的代码是100-52-7
Sub BrowseToSite()
Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
IE.Visible = True
IE.Navigate "https://apps.who.int/food-additives-contaminants-jecfa-database/Search.aspx"
Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop
IE.Document.forms("form1").Elements("ctl00$ContentPlaceHolder1$txtSearch").Value = Range("a1").Value
IE.Document.forms("form1").Elements("ctl00$ContentPlaceHolder1$btnSearch").Click
Set HTMLDoc = IE.Document
'Sheet1.Range("B1").Value = HTMLDoc.getElementsByClassName("sectionHead1")(0).innerText
End Sub
现在我希望将此页面上的“0-5 mg/kg bw (1996)”短语提取到 Excel 中。我计划通过检索类名中的内部文本来做到这一点,但是我遇到了错误Object Variable or With Block variable not set,其中包含以下行:
Sheet1.Range("B1").Value = HTMLDoc.getElementsByClassName("sectionHead1")(0).innerText
【问题讨论】:
标签: excel vba web-scraping