【发布时间】:2016-05-17 23:30:45
【问题描述】:
我有一个大的 Excel 文件,A 列中有很多字符串。 我想要 B 列中 Google 搜索结果的确切数量(尤其是显示 0 个结果的选项 - 事实上,只知道结果是否存在就足够了)。
我知道存在用于此的 VBA 代码 here 取自 website。
但是我和这些评论的人有同样的问题:
我让它在测试中工作了几次,但现在它说 运行时错误'2147024891(80070005)'
然后当我调试它时,它会突出显示 search_http.send
怎么了?
我不是高级 Excel 用户,也不是 VBA 程序员,因此不胜感激。也许我忽略了产生此错误的基本内容...
非常感谢,
毛里茨
我正在使用的代码:
Public Sub ExcelGoogleSearch()Dim searchWords As String
With Sheets("Sheet1")
RowCount = 1
Do While .Range("A" & RowCount) <> ""
searchWords = .Range("A" & RowCount).Value
' Get keywords and validate by adding + for spaces between
searchWords = Replace$(searchWords, " ", "+")
' Obtain the source code for the Google-searchterm webpage
search_url = "http://www.google.com/search?hl=en&q=""" & searchWords & """&meta="""
Set search_http = CreateObject("MSXML2.XMLHTTP")
search_http.Open "GET", search_url, False
search_http.send
results_var = search_http.responsetext
Set search_http = Nothing
' Find the number of results and post to sheet
pos_1 = InStr(1, results_var, "resultStats>", vbTextCompare)
If pos_1 = 0 Then
NumberofResults = 0
Else
pos_2 = InStr(3 + pos_1, results_var, ">", vbTextCompare)
pos_3 = InStr(pos_2, results_var, "<nobr>", vbTextCompare)
NumberofResults = Mid(results_var, 1 + pos_2, (-1 + pos_3 - pos_2))
End If
Range("B" & RowCount) = NumberofResults
RowCount = RowCount + 1
Loop
End With
End Sub
【问题讨论】:
标签: vba excel search-engine