Excel VBA从href标签中提取内部文本

时间:2017-12-07 19:41:46

标签: html excel-vba href innertext vba

HTML CODE如下所示:



<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>
&#13;
&#13;
&#13;

期望的结果:提取文本&#34;作业#221816 ......&#34;

这是我试图使用的代码,但我得到了#34;对象不受支持&#34;错误消息 Set foo = objIE.document.getElementsByClassName("Message").getElementsByTagName("a").innerText

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

1 个答案:

答案 0 :(得分:0)

这是因为您正在尝试Set字符串(innerText)到Object。此外,您需要指定哪个类名&#34;消息&#34;你想要的和哪个标签名称&#34; a&#34;你想要的。

您有两种选择:

选项1:首先设置对象,然后从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)ClassName之后放置TagName的?这可能会完全取决于您的完整HTML代码。最好的方法是使用For Each...Next语句迭代所有ClassNames或TagNames,但是您可以通过放置(i)后面来指定您想要的类/标签名称。请注意&#39; s&#39;在getElement s 之后...?这是因为类和标签名称不是唯一的。唯一的唯一元素是ID(请注意getElementByID()中没有&#39;&#39;