2017-04-05 60 views
1

我一直在使用以下代码从网页中提取值。VBA - 通过标记属性提取值

Private Sub Update() 

    Dim IE As New InternetExplorer 
    IE.Visible = False 
    IE.navigate "cisco.com/" & Range("srNum").Value 
    Do 
    DoEvents 
    Loop Until IE.readyState = READYSTATE_COMPLETE 
    Dim Doc As HTMLDocument 
    Set Doc = IE.document 
    Dim sTag As String 
    sTag = Doc.getElementById("caseheader").innerText 

    Sheets.Add 
    ActiveCell.Value = sTag 

End Sub 

我现在在一个新的页面,我需要通过属性“标题”拉值。在下面的例子中,我需要找到属性“title”,其值为“Priority”,然后返回“P3”的值。

<div class="con-LFloat con-RAlign con-Priority Width25"> 
    <span class="con-text-bold Width20 con-RAlign">Priority :</span> 
    <span class="con-text-bold con-LMargin5" title="Priority">P3</span> 
</div> 

我一直在使用.item尝试(0)或。儿童(0),没有运气,我还没有发现任何文件,以走在我穿过。

我需要一些帮助,可以帮助我设置这个或一个网站。

-Thanks

回答

0

尝试增加这样的事情:

Dim htmlEle1 as IHTMLElement 

On Error Resume Next 
For Each htmlEle1 in Doc.All 
    If htmlEle1.getAttribute("title") = "Priority" then Debug.Print htmlEle1.innertext 
Next htmlEle1 
On Error GoTo 0 

也改变IE.readyState = READYSTATE_COMPLETE

+0

感谢雷沙德雷。我还没有完成这项工作,但仍在努力。 –