第一篇文章在这里。尝试寻找类似的帖子,但无法找到任何东西。
我对 VBA 有点陌生。我正在尝试使用 Excel 导航到特定网站,单击单选按钮,键入一些文本作为搜索字符串,然后搜索该文本。当我浏览代码时,一切似乎都很好,但是当我单击搜索按钮时,我的搜索字符串被清空,并且我收到一条错误消息,告诉我输入搜索条件。代码如下:
Sub FranklinCountyWebsite()
'References: Microsoft Internet Controls, Microsoft HTML Object Library
Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
IE.Visible = True
IE.navigate "https://sheriff.franklincountyohio.gov/real-estate/"
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
Set HTMLDoc = IE.document
HTMLDoc.getElementById("ctl00_SheetContentPlaceHolder_c_search1_rblSrchOptions_3").Click
HTMLDoc.getElementById("ctl00_SheetContentPlaceHolder_c_search1_SrchSearchString").Value = "43215"
HTMLDoc.getElementById("ctl00_SheetContentPlaceHolder_c_search1_btnSearch").Click
End Sub
有趣的是,如果我访问富兰克林县网站并手动输入文本,然后点击搜索,一切正常。我忽略了什么容易的事情吗?
您可以使用serverxmlhttp
请求尝试相同的方法,这比IE快得多。下面的脚本可以将您引导到您希望从中获取数据的目标页面。
Sub Fetch_Item()
Dim post As Object, qsp$, S$
qsp = "q=searchType%3dZipCode%26searchString%3d43215%26foreclosureType%3d%26sortType%3daddress%26saleDateFrom%3d4%2f30%2f2017+12%3a00%3a00+AM%26saleDateTo%3d10%2f30%2f2018+11%3a59%3a59+PM"
With New ServerXMLHTTP
.Open "GET", "https://sheriff.franklincountyohio.gov/real-estate/results.aspx?" & qsp, False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.send
S = .responseText
End With
With New HTMLDocument
.body.innerHTML = S
Set post = .getElementById("ctl00_SheetContentPlaceHolder_C_searchresults_reSaleSummary_ctl00_lblAddrHeader")
MsgBox post.innerText
End With
End Sub
输出:
155-157 CLEVELAND AVE COLUMBUS, OH 43215 010054688, 010055721
要添加到库中的引用:
Microsoft XML, V6.0
Microsoft HTML Object Library