gpt4 book ai didi

excel - 大量行后Excel VBA崩溃

转载 作者:行者123 更新时间:2023-12-03 16:51:54 25 4
gpt4 key购买 nike

我创建了一个Excel宏来对更大的数据集(〜24,000行)进行分析。该宏对于第一个c运行良好。 2,000个请求/行,但此后通常崩溃。因此,发生崩溃的请求/行号会有所不同。

此时出现的调试器突出显示导致崩溃的代码行是:

Cells(i, 7).Value = var1.innerText

我已经检查了有关该主题的其他线程和解决方案,包括从“Int”到“Long”等的建议更改,但是这些都不起作用。谁能帮忙为什么宏对于较小的请求能很好地工作,但是经过一定的行数却失败了?

我正在使用的代码粘贴在下面。提前谢谢了。
Sub Gethits()
Dim url As String, lastRow As Long
Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
Dim start_time As Date
Dim end_time As Date
Dim var As String
Dim var1 As Object

lastRow = Range("A" & Rows.Count).End(xlUp).Row

Dim cookie As String
Dim result_cookie As String

start_time = Time
Debug.Print "start_time:" & start_time

For i = 1654 To lastRow

url = "https://www.google.com/search?q=" & Cells(i, 4) & "&source=lnt&tbs=cdr%3A1%2Ccd_min%3A" & Cells(i, 5) & "%2Ccd_max%3A" & Cells(i, 6) & "&tbm=nws"

Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
XMLHTTP.Open "GET", url, False
XMLHTTP.setRequestHeader "Content-Type", "text/xml"
XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
XMLHTTP.send

Set html = CreateObject("htmlfile")
html.body.innerHTML = XMLHTTP.responseText
Set objResultDiv = html.getElementById("rso")
Set var1 = html.getElementById("resultStats")
Cells(i, 7).Value = var1.innerText

DoEvents
Next

end_time = Time
Debug.Print "end_time:" & end_time

Debug.Print "done" & "Time taken : " & DateDiff("n", start_time, end_time)
MsgBox "done" & "Time taken : " & DateDiff("n", start_time, end_time)

End Sub

最佳答案

感谢您的反馈意见。该限制确实似乎是由Google限制的,它限制了给定时间段内的请求数量。错误发生后访问Google网页时,由于请求 Activity 异常频繁,我被要求通过验证码流程。

一次提交多个请求的想法在任何情况下都非常有趣,因为这样可以节省大量的数据收集时间。但是,TinMan(codereview.stackexchange.com/a/196922/171419)是否有简化的示例方法?我检查了其他线程,但到目前为止没有发现任何帮助。

关于excel - 大量行后Excel VBA崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53460742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com