gpt4 book ai didi

excel - getelementsbyclassname Excel vba - 重复调用错误

转载 作者:行者123 更新时间:2023-12-04 20:41:47 24 4
gpt4 key购买 nike

早晨,

我遇到了来自 Excel 的网络抓取问题,其中 getelementsbyclassname 无法对某些对象采取行动,抛出“对象不支持此属性或方法”错误。

当我输入 getelementsbyclassname 的对象本身是 getelementsbyclassname 方法的结果时,就会出现问题。我不知道为什么,特别是当我在一个更大的对象上操作时可以获得类名......

这是一段代码摘录

''''Boring Variables Declaration I've cut out''''

'Initialise IE
Dim IEApp As New InternetExplorer
Set IEApp = New InternetExplorer
IEApp.Visible = True 'JB

'Open page and wait for page to load
IEApp.navigate ("http://www.anicewebsite.com")
Do Until IEApp.readyState = READYSTATE_COMPLETE And IEApp.Busy = False
DoEvents
Loop

Set HTMLdoc = IEApp.document
Set RefLocation = Sheets("INFO_DUMP").Range("LocationRefCell")
Set trElements = HTMLdoc.getElementsByClassName("basic-details")
For Each trElement In trElements
'Select the LHS box and extract info
Set tdElement = trElement.getElementsByClassName("tieredToggle")
'write start/end locations
'''''THIS NEXT LINE THROWS AN ERROR'''''
Data_str = tdElement.getElementsByClassName("title").innerText
'''''AS DOES'''''
MyObject=tdElement.getElementsByClassName("title")
RefLocation.Offset(1, 2).Value = Data_str
Next 'close tr Loop

但是,我可以通过
For Each trElement In trElements
Set MyObject=trElement.getElementsByClassName("title")
Next 'close tr Loop

所以错误可能是关于 tdElement (一个 DispHTMLElement 集合)的东西,我试图附上一张图片,但我缺乏声誉(请参阅帖子末尾的链接)......

非常感谢您的帮助。

PS。该网页的结构大致有一个 2 列表,我用“基本详细信息”隔离其行。第一列是“分层切换”,然后我想要的项目是内部文本,例如。 “标题”。我需要使用 tieredtoggle 因为每列中的对象都有重复的类名

http://i.stack.imgur.com/1tyb6.png

最佳答案

您可以使用它来获取内部文本。

Data_str = tdElement.getElementsByClassName("title")(0).innerText

您可以输入元素所在的索引值,而不是 ("title")(0)。

关于excel - getelementsbyclassname Excel vba - 重复调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31490265/

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