gpt4 book ai didi

excel - 运行时错误 '91' : Object Variable or With Block not Set

转载 作者:行者123 更新时间:2023-12-04 21:44:18 24 4
gpt4 key购买 nike

我一直在使用下面的代码,它给了我一个错误 Run Time Error '91' : Object Variable or With Block not Set我不知道为什么。
早些时候它工作正常,但我不知道为什么会发生错误。我尝试了其他解决方案搜索 Copy URL from the first Search但他们也没有工作。
此行出现错误Set link = ecoll.getElementsByTagName("a")(0)如果有人可以提供替代解决方案,那将是很大的帮助。任何帮助将不胜感激。
enter image description here

Sub link()
Dim doc As HTMLDocument
Set doc = New HTMLDocument

Dim lastrow As Long
Dim ecoll As Object
Dim link As Object
Dim t As Date

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

t = Now()

Dim reqObj As Object
Set reqObj = CreateObject("MSXML2.XMLHTTP")

For i = 2 To lastrow

reqObj.Open "GET", "https://www.google.co.in/search?q=" & Cells(i, 1) & "&rnd=" & WorksheetFunction.RandBetween(1, 10000), False
reqObj.send

doc.body.innerHTML = reqObj.responseText


Set ecoll = doc.getElementById("rso")
Set link = ecoll.getElementsByTagName("a")(0)

Cells(i, 2) = link.href
Next

Set doc = Nothing
Set reqObj = Nothing

Debug.Print "done" & "Time taken : " & Format(Now() - t, "hh:mm:ss")
MsgBox "Ellapsed Time - " & Format(Now() - t, "hh:mm:ss")
End Sub

最佳答案

需要 cookie 同意,否则您将无法获得预期的搜索结果;至少对我来说,html是不同的。我添加以下标题就足够了:

reqObj.setRequestHeader "cookie", "CONSENT=YES+"
reqObj.setRequestHeader "User-Agent", "Mozilla/5.0"
然后我需要一个不同的ID:
Set ecoll = doc.getElementById("main")
你的旅费可能会改变。
然后你需要定位 a带有更多歧视的标签,否则你会得到很多你几乎肯定不想要的东西。
所以,尝试删除:
Set link = ecoll.getElementsByTagName("a")(0)
然后使用这个:
Cells(i, 2) = Replace$(ecoll.querySelector("[href*=url]").href, "about:/url?q=", vbNullString)

关于excel - 运行时错误 '91' : Object Variable or With Block not Set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69543651/

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