【问题标题】:Excel VBA Extracting Inner Text from href TagExcel VBA从href标签中提取内部文本
【发布时间】:2018-05-22 00:08:13
【问题描述】:

HTML 代码如下所示:

<div class="WebPageMessage">
<div class="WebPageMessageInformation">
<div class="Message">Your request has been scheduled. <a href="/MyAccount/QueuedJob.aspx?JobID=221816">Job # 221816. Click here To monitor Schedule</a><br>There are 0 job(s) already in the queue.</div></div></div>

期望的结果:提取文本“Job # 221816...”

这是我尝试使用的代码,但我收到“不支持对象”错误消息 Set foo = objIE.document.getElementsByClassName("Message").getElementsByTagName("a").innerText

任何帮助都会很棒 谢谢,节日快乐:)

【问题讨论】:

    标签: html excel href innertext vba


    【解决方案1】:

    这是因为您试图将Set 字符串(innerText)转换为对象。另外,你需要指定你想要的类名“Message”和你想要的标签名“a”。

    你有两个选择:

    选项一:先设置对象,再从foo抓取字符串

    Dim foo As Object, myStr As String
    Set foo = objIE.document.getElementsByClassName("Message")(0).getElementsByTagName("a")(0)
    myStr = foo.InnerText
    

    选项2:不要将对象分配给变量,直接抓取字符串。

    Dim myStr As String
    myStr = objIE.document.getElementsByClassName("Message")(0).getElementsByTagName("a")(0).innerText
    

    注意我是如何将(0) 放在ClassNameTagName 之后的吗?这完全取决于您的完整 HTML 代码。最好的方法是使用For Each...Next 语句来遍历所有类名或标记名,但您可以通过在后面放置 (i) 来指定您想要的类/标记名。注意到 getElements... 之后的“s”了吗?那是因为类和标签名称不是唯一的。唯一唯一的元素是 ID(注意 getElementByID() 中没有“s”。

    【讨论】:

      猜你喜欢
      • 2017-02-07
      • 2019-02-27
      • 2021-07-12
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 2016-05-07
      • 2014-03-02
      • 2021-08-08
      相关资源
      最近更新 更多