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

标签 excel getelementsbyclassname vba

早晨,

我遇到了来自 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/

相关文章:

VBA宏: Which table my cursor is in?

excel - 循环工作表并删除

vba - 首次导入后删除 CSV 导入的标题行

excel - 减少字符串并保持零完整

json - VBA从集合中获取值?

javascript - 如何通过多个类名查找和删除 DOM 元素

java - 使用 Apache Poi 复制 Excel 颜色

javascript - 如何让 getElementsByClassName 定位所有标记元素 - 有更好的选择吗?

javascript - document.getElementsByClassName() 类标识符更改

excel - 如何从EXCEL公式中得到真正的公式