VBA从HTML获取属性值

VBA从HTML获取属性值,vba,excel,Vba,Excel,我试图创建宏,它将从特定属性获取数据,并简单地粘贴到excel上,我尝试使用getElementsById,但它对我不起作用 我有链接: 只需查看源代码,您就会找到属性名“lead context” 所以基本上我想要excel表上的值“OPK”,“F45CV ROI OPK”,“1-1521452141”和“1524521452” 谁能帮我简单的代码,对不起,因为我是VBA新手 谢谢您的时间:) 问候,, Mayur一种方法是抓取所有的元素并循环遍历它们以收集您需要的内容。我使用的变量赋值

我试图创建宏,它将从特定属性获取数据,并简单地粘贴到excel上,我尝试使用getElementsById,但它对我不起作用

我有链接:

只需查看源代码,您就会找到属性名“lead context”


所以基本上我想要excel表上的值“OPK”,“F45CV ROI OPK”,“1-1521452141”和“1524521452”

谁能帮我简单的代码,对不起,因为我是VBA新手

谢谢您的时间:)

问候,,
Mayur

一种方法是抓取所有的
元素并循环遍历它们以收集您需要的内容。我使用的变量赋值需要工具、引用、MicrosoftHTML对象库,但如果您愿意,可以直接将它们称为对象

Dim eNPT As MSHTML.IHTMLElement, ecNPTs As MSHTML.IHTMLElementCollection
Set ecNPTs = ie.document.getElementsByTagName("input")
Range("A1:A5").ClearContents
For Each eNPT In ecNPTs
    Select Case LCase(eNPT.getAttribute("name"))
        Case "reg_source"
            Range("A1") = eNPT.Value
        Case "lead_context"
            Range("A2") = eNPT.Value
        Case "subscription_lead_context"
            Range("A3") = eNPT.Value
        Case "cam_source_code"
            Range("A4") = eNPT.Value
        Case "offer_code"
            Range("A5") = eNPT.Value
        End Select
        If Application.CountA(Range("A1:A5")) = 5 Then Exit For
Next eNPT
Set ecNPTs = Nothing: Set eNPT = Nothing
GetElementById()
无法处理没有id且那些
元素只有名称的对象。你发布网站的HTML源代码而不是你自己的代码有什么原因吗?
Dim eNPT As MSHTML.IHTMLElement, ecNPTs As MSHTML.IHTMLElementCollection
Set ecNPTs = ie.document.getElementsByTagName("input")
Range("A1:A5").ClearContents
For Each eNPT In ecNPTs
    Select Case LCase(eNPT.getAttribute("name"))
        Case "reg_source"
            Range("A1") = eNPT.Value
        Case "lead_context"
            Range("A2") = eNPT.Value
        Case "subscription_lead_context"
            Range("A3") = eNPT.Value
        Case "cam_source_code"
            Range("A4") = eNPT.Value
        Case "offer_code"
            Range("A5") = eNPT.Value
        End Select
        If Application.CountA(Range("A1:A5")) = 5 Then Exit For
Next eNPT
Set ecNPTs = Nothing: Set eNPT = Nothing